Docker+Nuxt.js環境で「npm run dev」で「sh: nuxt: not found」

今回はDocker+Nuxt.js環境を使っていて「npm run dev」を叩いた際に、下記のエラーが出てしまったときの原因と対処法についてご紹介いたします。

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」を叩いた際に、冒頭のエラーが出てしまったときの原因と対処法についてご紹介いたしました。

最後までお読みいただきありがとうございます。
よろしければブログやTwitterでのシェアをお願いしております。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。

直接契約ができるフリーランスエージェント「エンハンス」を立ち上げました。
詳しくは下記LPをご参照ください。
https://enhance.decryption.co.jp/

Youtubeチャンネル開設いたしました。
チャンネル登録者10,000人を目指しているので、良いと思った方はチャンネル登録をお願いしたいです。
https://www.youtube.com/channel/UC219XhmSRxmXltTy6COxSMw






Docker

Posted by ちこ