Vitest does not work when running from any CLI (Cannot find module @rollup)
Describe the bug
We are using Vitest in our project as a npm script. When running from Visual Studio Code, the tests run correctly. However, when we are trying to run the npm command that executes Vitest from a CLI outside of Visual Studio Code (for example, cmd or in a Jenkins pipeline), we get the following error:
Error: Cannot find module @rollup/rollup-win32-x64-msvc. npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). Please try npm i again after removing both package-lock.json and node_modules directory.
Reproduction
In VS Code (works):
- Open a new terminal
- Run command: npm run test (which runs vitest --run --no-isolate --no-file-parallelism)
- Vitest works
In any other CLI (doesn't work):
- Open CMD in the same directory as in VS Code
- Run command: npm run test
- Gives the error specified above (cannot find module @rollup)
System Info
Any
Used Package Manager
npm
Validations
- [X] Follow our Code of Conduct
- [X] Read the Contributing Guidelines.
- [X] Read the docs.
- [X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
- [X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
- [X] The provided reproduction is a minimal reproducible example of the bug.
I'm also suffering the same issue, in Gitlab pipeline on image node:20.14.0.
⎯⎯⎯⎯⎯⎯ Unhandled Error ⎯⎯⎯⎯⎯⎯⎯
Error: Cannot find module @rollup/rollup-linux-x64-gnu. npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). Please try `npm i` again after removing both package-lock.json and node_modules directory.
at requireWithFriendlyError (/builds/my-super-cool/app/node_modules/rollup/dist/native.js:59:9)
at Object.<anonymous> (/builds/my-super-cool/app/node_modules/rollup/dist/native.js:68:76)
... 3 lines matching cause stack trace ...
at Module._load (node:internal/modules/cjs/loader:1024:12)
at cjsLoader (node:internal/modules/esm/translators:348:17)
at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:297:7)
at ModuleJob.run (node:internal/modules/esm/module_job:222:25)
at async ModuleLoader.import (node:internal/modules/esm/loader:316:24) {
[cause]: Error: Cannot find module '@rollup/rollup-linux-x64-gnu'
Require stack:
- /builds/my-super-cool/app/node_modules/rollup/dist/native.js
at Module._resolveFilename (node:internal/modules/cjs/loader:1145:15)
at Module._load (node:internal/modules/cjs/loader:986:27)
at Module.require (node:internal/modules/cjs/loader:1233:19)
at require (node:internal/modules/helpers:179:18)
at requireWithFriendlyError (/builds/my-super-cool/app/node_modules/rollup/dist/native.js:41:10)
at Object.<anonymous> (/builds/my-super-cool/app/node_modules/rollup/dist/native.js:68:76)
at Module._compile (node:internal/modules/cjs/loader:1358:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
at Module.load (node:internal/modules/cjs/loader:1208:32)
at Module._load (node:internal/modules/cjs/loader:1024:12) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/builds/my-super-cool/app/node_modules/rollup/dist/native.js'
]
}
}
Solved my issue by adding to package.json
`"optionalDependencies": {
"@rollup/rollup-linux-x64-gnu": "^4.18.0"
},
Hello @Dimidrie. Please provide a minimal reproduction using a GitHub repository or StackBlitz (you can also use examples). Issues marked with needs reproduction will be closed if they have no activity within 3 days.