Docker+Nuxt.js環境で「npm run dev」で「sh: nuxt: not found」
今回はDocker+Nuxt.js環境を使っていて「npm run dev」を叩いた際に、下記のエラーが出てしまったときの原因と対処法についてご紹介いたします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
bash-4.4# npm run dev > test@1.0.0 dev /usr/local/test-app > nuxt --hostname 0.0.0.0 --port 3000 sh: nuxt: not found npm ERR! code ELIFECYCLE npm ERR! syscall spawn npm ERR! file sh npm ERR! errno ENOENT npm ERR! test@1.0.0 dev: `nuxt --hostname 0.0.0.0 --port 3000` npm ERR! spawn ENOENT npm ERR! npm ERR! Failed at the test@1.0.0 dev script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /root/.npm/_logs/2024-04-22T09_16_07_919Z-debug.log |
Node.jsのバージョンは10.6で、Nuxt.jsのバージョンは2.9.2です。
Docker+Nuxt.js環境で「npm run dev」で「sh: nuxt: not found」
結論から言うと、node_modulesがない状態で「npm run dev」を叩いた際にこのエラーが出現します。
私はDockerfile内で「npm install」や「npm ci」をしたはずなのにこのエラーが出ましたが、ビルドしても再度docker-compose upでマウントしたときに消えてしまいます。
このあたりのリンクが役に立ちますが、docker-composeのbuild時にnode_modulesが作られたとしても、マウントしてしまえば消えてしまうのでどこかに退避させておいて再度シェルでコピーなどしなければなりません。
https://stackoverflow.com/questions/51097652/install-node-modules-inside-docker-container-and-synchronize-them-with-host
https://stackoverflow.com/questions/38425996/docker-compose-volume-on-node-modules-but-is-empty
一度コンテナの中に入って手動でnpm installやnpm ciをしてnode_modulesを作ると、冒頭のエラーが起きないことが確認できると思います。
Dockerfileなどを工夫していきましょう。
終わりに
今回はDocker+Nuxt.js環境を使っていて「npm run dev」を叩いた際に、冒頭のエラーが出てしまったときの原因と対処法についてご紹介いたしました。
ディスカッション
コメント一覧
まだ、コメントがありません