playwright
playwright copied to clipboard
[NPM] Error: Requiring @playwright/test second time - when using 2 separate npm packages
I have two separate npm packages which are on internal organization npm feed. Lets call them
- packageA
- packageB
- testingProject
all packages using @playwright/test, packageA is "main" one and packageB is using packageA. When i later install packageB to my testingProject i cannot run tests due to Error: Requiring @playwright/test second time
How to create just one instance of playwright/test, i have playwright.config.ts only in my testing project. I was trying to use only playwright-core in packages but it wont work in my case as i using expect in them which is not included in core. Maybe i should export @playwright/test from packageA, but then how to setup testing project without it ?
Make sure you are using the same version of Playwright in your packages. Npm will perform all the necessary deduplication. You can find the source of the problem via examining package-lock. Most likely you pinned different playwright versions in your package.json deps.
Make sure you are using the same version of Playwright in your packages. Npm will perform all the necessary deduplication. You can find the source of the problem via examining package-lock. Most likely you pinned different playwright versions in your package.json deps.
In my "base" packageA i added in package.json dependencies:
so once i install packageA in packageB (packageB have packageA in dependencies) and later install packageB in testing Project it is using those dependencies so versions are for sure the same. I am able to import everything correctly. However i have still this error when im trying to run my tests...
Error: Requiring @playwright/test second time,
Maybe my playwright.config.ts is in wrong package/place ? It should be only in testing project ?
Looking at the package-lock.json should usually give a clue on if multiple @playwright/test versions are installed or not. We need something we can clone and reproduce locally in order to triage this further. Thanks for your understanding!
It also depends on how you distribute your util package etc. (esbuild or pure TypeScript etc.)
I used TSUP to build package.
I added now @playwright/test as a dev dependencies in all 3 projects.
Ive added packageA and package B to my testing project using yarn add -D //relative-pathto-GZ-tarball (before that i used yarn pack ) i checked yarn lock and it seems that its installted only once (as expected as it is in dev dependencies) but still have this issue however...
Would it be possible to share a reproduction? Otherwise we are not able to act on it, unfortunately. Thank you!
I'll close it in the meantime while we don't have a reproduction. The issue is usually that you have multiple @playwright/test versions in your project. Ideally the utils package should not depend on @playwright/test at all, and only your main project should do. Feel free to re-file with a repro.