I ran into multiple issues while trying to add (vite-)jest to a vite: vanilla-ts project.
As far as I can tell, these issues are actually caused upstream and therefore not actually issues with vite or vite-jest, they seem mostly limitations of esbuild and rollup.
Also, I could not find a solution that could be implemented in vite-jest, of course I could be wrong...
However, it did stop me from using vite and vite-jest 'out-of-the-box' and therefore want to throw it out here, so other people running into the issue(s) might not have to spend a few days on finding a solution or workaround.
A project created with vite vanilla-ts template, with added jest and vite-jest.
Running yarn test:unit, gives the following errors:
[vite] error while updating dependencies:
Error: Build failed with 4 errors:
node_modules/fsevents/fsevents.js:13:23: ERROR: No loader is configured for ".node" files: node_modules/fsevents/fsevents.node
node_modules/jest-pnp-resolver/index.js:46:4: ERROR: Cannot assign to "defaultResolver" because it is a constant
node_modules/vite/dist/node/chunks/dep-9c153816.js:28849:7: ERROR: [plugin: vite:dep-pre-bundle] Missing "./build/defaultResolver" export in "jest-resolve" package
node_modules/vite/dist/node/chunks/dep-9c153816.js:28849:7: ERROR: [plugin: vite:dep-pre-bundle] Missing "./build/default_resolver" export in "jest-resolve" package
at failureErrorWithLog (.../reproduce_sodatea_vite-jest_dependency_errors/node_modules/esbuild/lib/main.js:1599:15)
at .../reproduce_sodatea_vite-jest_dependency_errors/node_modules/esbuild/lib/main.js:1245:28
at runOnEndCallbacks (.../reproduce_sodatea_vite-jest_dependency_errors/node_modules/esbuild/lib/main.js:1030:63)
at buildResponseToResult (.../reproduce_sodatea_vite-jest_dependency_errors/node_modules/esbuild/lib/main.js:1243:7)
at .../reproduce_sodatea_vite-jest_dependency_errors/node_modules/esbuild/lib/main.js:1352:14
at .../reproduce_sodatea_vite-jest_dependency_errors/node_modules/esbuild/lib/main.js:662:9
at handleIncomingPacket (.../reproduce_sodatea_vite-jest_dependency_errors/node_modules/esbuild/lib/main.js:759:9)
at Socket.readFromStdout (.../reproduce_sodatea_vite-jest_dependency_errors/node_modules/esbuild/lib/main.js:629:7)
at Socket.emit (node:events:526:28)
at addChunk (node:internal/streams/readable:315:12)
By excluding fsevents and jest-pnp-resolver, from dependency optimization, these errors are no longer thrown.
However, on top of 2 warnings about unsupported async import syntax, a new error pops up:
ReferenceError: __DEFINES__ is not defined
at node_modules/vite/src/client/env.ts:17:17
at TestScheduler.scheduleTests (node_modules/@jest/core/build/TestScheduler.js:333:13)
at runJest (node_modules/@jest/core/build/runJest.js:404:19)
at _run10000 (node_modules/@jest/core/build/cli/index.js:320:7)
I ran into multiple issues while trying to add (vite-)jest to a vite: vanilla-ts project.
As far as I can tell, these issues are actually caused upstream and therefore not actually issues with vite or vite-jest, they seem mostly limitations of esbuild and rollup.
Also, I could not find a solution that could be implemented in vite-jest, of course I could be wrong...
However, it did stop me from using vite and vite-jest 'out-of-the-box' and therefore want to throw it out here, so other people running into the issue(s) might not have to spend a few days on finding a solution or workaround.
Reproduction:
https://github.com/PeterDeKok/reproduce_sodatea_vite-jest_dependency_errors
TLDR Below.
yarn/1.22.17 npm/8.5.0 node/v16.14.2 darwin x64
A project created with vite vanilla-ts template, with added
jest
andvite-jest
.Running
yarn test:unit
, gives the following errors:By excluding
fsevents
andjest-pnp-resolver
, from dependency optimization, these errors are no longer thrown.However, on top of 2 warnings about unsupported async import syntax, a new error pops up:
Possibly related issues: https://github.com/evanw/esbuild/issues/1715
TLDR;
By exluding (only)
jest
, from dependency optimization, all errors seem gone.