C
Node.js検証済み

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業種以上の業務システムを開発/運用)が、 掲載コマンドを検証環境で実行し、再現〜解決〜確認まで通ることを確認しています。

この手順でも直らない・自社の環境で再現する場合

エラー調査・修正から、業務システムの改善までご相談いただけます。

無料で相談する

関連する記事