How do I resolve "Cannot find module" error using Node.js の原因と直し方【Dockerで検証済み】
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);"動画で見る
この記事の解決手順は実環境で検証しています
山田 英紀(社内SE 5年以上・13業種以上の業務システムを開発/運用)が、 掲載コマンドを検証環境で実行し、再現〜解決〜確認まで通ることを確認しています。