Windows の場合について。
シンボリックリンクをオフにするオプションを付けて試してみる。
npm install --no-bin-links
それでも以下のようなエラーが出る場合
npm ERR! path /var/www/production/node_modules/socket.io/node_modules/engine.io-client/package.json.2873861091 npm ERR! code ENOENT npm ERR! errno -2 npm ERR! syscall open npm ERR! enoent ENOENT: no such file or directory, open '/var/www/production/node_modules/socket.io/node_modules/engine.io-client/package.json.2873861091' npm ERR! enoent This is related to npm not being able to find a file. npm ERR! enoent npm ERR! A complete log of this run can be found in: npm ERR! /root/.npm/_logs/2019-09-09T01_55_41_348Z-debug.log
Docker コンテナでマウントされているディレクトリで npm install を実行しているのが原因かもしれない。
以下、行った対処法。
1.マウントされているディレクトリより上の階層に temp ディレクトリを作成
2.package.json と package-lock.json を temp に移動
3.npm install –no-bin-links を実行
4.node_modules と package.json、package-lock.json を元々インストール予定だったディレクトリに移動
mkdir /var/www/temp mv package* /var/www/temp/ cd /var/www/temp npm install --no-bin-links mv node_modules/ /var/www/production/ mv package* /var/www/production/