Node.js

How do I resolve "Cannot find module" error using Node.js の原因と直し方【Dockerで検証済み】

Node.js

How do I resolve "Cannot find module" error using Node.js? の原因と解決方法。検証済みの解決コマンド付きで、現象→原因→解決→確認の順に最短で直せます。

このエラーが出ていませんか

エラー出力
How do I resolve "Cannot find module" error using Node.js?

結論

結論:まずこれで直ります

下の解決コマンドを順に実行すれば直ります。

解決コマンド
cd /app && npm init -y && npm install express && node index.js

どんなエラーか

次の操作を行うと(検証環境: node:20)、上記のエラーが発生します。まずは下の再現コマンドで、同じ状況を再現できることを確認してください。

検証環境:node:20

再現コマンド
mkdir -p /app && cd /app && cat > index.js << 'EOF'
const express = require('express');
console.log('loaded');
EOF
node index.js

なぜ起きるのか

「Cannot find module」エラーは、Node.jsがrequire()やimport文で指定したモジュールをnode_modulesディレクトリ内に見つけられないときに発生します。主な原因は、そのパッケージがまだインストールされていないことです。解決するには、まず対象プロジェクトディレクトリでnpm init -yを実行してpackage.jsonを初期化し(既に存在する場合は不要)、次にnpm install <パッケージ名>でパッケージをインストールします。これによりnode_modulesディレクトリとpackage-lock.jsonが生成され、Node.jsがモジュールを正しく解決できるようになります。既存のプロジェクトをクローンした場合はpackage.jsonは存在しますがnode_modulesがない状態なので、npm installを実行するだけで依存関係がすべてインストールされます。

解決手順

修正コマンド
cd /app && npm init -y && npm install express && node index.js

直ったか確認する

確認コマンド
cd /app && node -e "require('express'); console.log('express loaded successfully'); process.exit(0);"

動画で見る

この手順でも直らない場合は。

エラー文をそのまま貼り付けて送っていただければ、原因の当たりをつけてお返しします。 ヒアリングは無料です。業務システムの内製化・保守のご相談も受け付けています。

無料相談を申し込む

Related

無料相談(ヒアリング0円)
無料相談0 YEN