/reproduction-node-v10-module-not-found-error

Bug reproduction for Node.js v10.16.3 and npm v6.11.3

MIT LicenseMIT

Reproduction Node.js v10.16.3 and npm 6.11.3 MODULE_NOT_FOUND error

This repo is a MODULE_NOT_FOUND bug reproduction for Node.js v10.16.3 and npm v6.11.3

Goal

I want to release on a CI server (or locally) with https://github.com/semantic-release/semantic-release module.

On CI server (or locally) I run npm ci: it doesn't change package-lock.json, and all dependencies' version exactly same as described in package-lock.json (using npm install on CI server is not a good practice): https://docs.npmjs.com/cli/ci.html

Problems

Sometimes I've got an error when it's running on Node.js v10.16.3 and npm v6.11.3. But there is no error on Node.js v12.11.0 and npm v6.11.3.

> reproduction-node-v10-module-not-found-error@0.0.0 prerelease /Users/xxx/work/git_local/xxx/reproduction-node-v10-module-not-found-error
> npm ci

npm WARN prepare removing existing node_modules/ before installation
npm ERR! code MODULE_NOT_FOUND
npm ERR! Cannot find module 'validate-npm-package-name'

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/xxx/.npm/_logs/2019-10-04T07_44_26_930Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! reproduction-node-v10-module-not-found-error@0.0.0 prerelease: `npm ci`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the reproduction-node-v10-module-not-found-error@0.0.0 prerelease script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/xxx/.npm/_logs/2019-10-04T07_44_27_174Z-debug.log
npm ERR! Test failed.  See above for more details.

/Users/xxx/.npm/_logs/2019-10-04T07_44_27_174Z-debug.log :

0 info it worked if it ends with ok
1 verbose cli [ '/Users/xxx/.nvm/versions/node/v10.16.3/bin/node',
1 verbose cli   '/Users/xxx/work/git_local/xxx/reproduction-node-v10-module-not-found-error/node_modules/.bin/npm',
1 verbose cli   'ci' ]
2 info using npm@6.11.3
3 info using node@v10.16.3
4 info prepare initializing installer
5 verbose prepare starting workers
6 verbose prepare installation prefix: /Users/xxx/work/git_local/xxx/reproduction-node-v10-module-not-found-error
7 verbose prepare using package-lock.json
8 warn prepare removing existing node_modules/ before installation
9 verbose checkLock verifying package-lock data
10 verbose teardown shutting down workers.
11 info teardown Done in 0.001s
12 verbose stack Error: Cannot find module 'validate-npm-package-name'
12 verbose stack     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
12 verbose stack     at Function.Module._load (internal/modules/cjs/loader.js:562:25)
12 verbose stack     at Module.require (internal/modules/cjs/loader.js:692:17)
12 verbose stack     at require (internal/modules/cjs/helpers.js:25:18)
12 verbose stack     at Result.setName (/Users/xxx/work/git_local/xxx/reproduction-node-v10-module-not-found-error/node_modules/npm/node_modules/npm-package-arg/npa.js:118:51)
12 verbose stack     at new Result (/Users/xxx/work/git_local/xxx/reproduction-node-v10-module-not-found-error/node_modules/npm/node_modules/npm-package-arg/npa.js:111:23)
12 verbose stack     at Function.resolve (/Users/xxx/work/git_local/xxx/reproduction-node-v10-module-not-found-error/node_modules/npm/node_modules/npm-package-arg/npa.js:58:15)
12 verbose stack     at Object.keys.forEach.name (/Users/xxx/work/git_local/xxx/reproduction-node-v10-module-not-found-error/node_modules/npm/node_modules/lock-verify/index.js:26:26)
12 verbose stack     at Array.forEach (<anonymous>)
12 verbose stack     at Promise.all.then.result (/Users/xxx/work/git_local/xxx/reproduction-node-v10-module-not-found-error/node_modules/npm/node_modules/lock-verify/index.js:25:25)
13 verbose cwd /Users/xxx/work/git_local/xxx/reproduction-node-v10-module-not-found-error
14 verbose Darwin 18.7.0
15 verbose argv "/Users/xxx/.nvm/versions/node/v10.16.3/bin/node" "/Users/xxx/work/git_local/xxx/reproduction-node-v10-module-not-found-error/node_modules/.bin/npm" "ci"
16 verbose node v10.16.3
17 verbose npm  v6.11.3
18 error code MODULE_NOT_FOUND
19 error Cannot find module 'validate-npm-package-name'
20 verbose exit [ 1, true ]

After errors I run npm cache verify and npm cache clean --force :

➜ npm cache verify                                              
Cache verified and compressed (~/.npm/_cacache):
Content verified: 584 (14542326 bytes)
Content garbage-collected: 1 (1702418 bytes)
Index entries: 892
Finished in 0.839s

Reproduction

Clone this repo, run npm install and npm test.

Run npm test as many times as you need to get an error. npm test contains several npm ci for more test.

My environments is: MacOS Mojave v10.14.6 (all patch applied, Oct 4 2019), Terminal with ohmyzsh.

There is no error on Node.js v12.11.0 and npm v6.11.3

➜ nvm use v12
Now using node v12.11.0 (npm v6.11.3)

git_local/xxx/reproduction-node-v10-module-not-found-error on  master [!] is 📦  v0.0.0 via ⬢ v12.11.0 
➜ npm test               

> reproduction-node-v10-module-not-found-error@0.0.0 test /Users/xxx/work/git_local/xxx/reproduction-node-v10-module-not-found-error
> npm ci && npm ci && npm ci && npm ci && npm ci

added 315 packages in 2.587s
npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.49s
npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.398s
npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.17s
npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.184s

git_local/xxx/reproduction-node-v10-module-not-found-error on  master [!] is 📦  v0.0.0 via ⬢ v12.11.0 took 18s 
➜ npm test

> reproduction-node-v10-module-not-found-error@0.0.0 test /Users/xxx/work/git_local/xxx/reproduction-node-v10-module-not-found-error
> npm ci && npm ci && npm ci && npm ci && npm ci

npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.27s
npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.303s
npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.327s
npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.24s
npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.309s

git_local/xxx/reproduction-node-v10-module-not-found-error on  master [!] is 📦  v0.0.0 via ⬢ v12.11.0 took 19s 
➜ npm test

> reproduction-node-v10-module-not-found-error@0.0.0 test /Users/xxx/work/git_local/xxx/reproduction-node-v10-module-not-found-error
> npm ci && npm ci && npm ci && npm ci && npm ci

npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.647s
npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.302s
npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.426s
npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.263s
npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.39s

git_local/xxx/reproduction-node-v10-module-not-found-error on  master [!] is 📦  v0.0.0 via ⬢ v12.11.0 took 20s 
➜ npm test

> reproduction-node-v10-module-not-found-error@0.0.0 test /Users/xxx/work/git_local/xxx/reproduction-node-v10-module-not-found-error
> npm ci && npm ci && npm ci && npm ci && npm ci

npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.256s
npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.338s
npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.638s
npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.362s
npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.358s

git_local/xxx/reproduction-node-v10-module-not-found-error on  master [!] is 📦  v0.0.0 via ⬢ v12.11.0 took 19s 
➜ npm test

> reproduction-node-v10-module-not-found-error@0.0.0 test /Users/xxx/work/git_local/xxx/reproduction-node-v10-module-not-found-error
> npm ci && npm ci && npm ci && npm ci && npm ci

npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.444s
npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.368s
npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.287s
npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.612s
npm WARN prepare removing existing node_modules/ before installation
added 315 packages in 3.311s

git_local/xxx/reproduction-node-v10-module-not-found-error on  master [!] is 📦  v0.0.0 via ⬢ v12.11.0 took 19s 
➜