【VSCode】「Cannot find module」と表示される場合の原因と対処法|Node.jsでモジュールが見つからない場合

みなさんこんにちは。

VSCodeでNode.jsのプログラムを実行した際、Cannot find moduleというエラーが表示され、困った経験をしたことがある方も多いかと思います。

今回は、モジュールが見つからない原因と、package.json・npm install・実行場所の確認方法についてご紹介したいと思います。

この記事はこんな人におすすめ

この記事はこんな人におすすめです!

  • Cannot find moduleを解消したい人
  • npm installを実行しても直らない人
  • node_modulesや実行フォルダを確認したい人

といったところでしょうか。

Cannot find moduleが表示される原因

このエラーは、Node.jsがrequire()で指定したモジュールを見つけられない場合などに発生します。VSCodeそのものの不具合ではなく、依存パッケージの未導入やパスの指定が原因となるケースが多いです。

今回はVSCodeで新しいフォルダnode-module-testを開き、ターミナル(Ctrl + `)でnpm init -yを実行します。作成したapp.jsに次のコードを記述してください。

// Expressモジュールを読み込む
const express = require("express");

// アクセス時に文字を返す処理
const app = express();
app.get("/", (req, res) => {
    res.send("Hello");
});

// 3000番ポートでサーバーを起動する
app.listen(3000, () => {
    console.log("Server started");
});

まだexpressをインストールしていない状態でnode app.jsを実行すると、次のようなエラーになります。

Error: Cannot find module 'express'
code: 'MODULE_NOT_FOUND'
VSCodeでNode.jsを実行した際にCannot find module expressエラーが表示された画面

package.jsonとnpm installを確認する

まず、フォルダ内のpackage.jsonを開き、dependenciesに対象のパッケージが記載されているか確認してください。

既存のプロジェクトで依存関係が定義されている場合は、そのpackage.jsonがあるフォルダでnpm installを実行します。

npm install

今回のようにexpressが未登録の場合は、次のコマンドで追加しましょう。npm installだけでは、未登録のexpressは追加されません。

npm install express

インストール後、package.jsonのdependenciesにexpressが追加されていることを確認してください。

VSCodeでpackage.jsonのdependenciesにExpressが登録され、npmでインストール済みであることを確認した画面

node_modulesが作成されているか確認する

インストールが完了すると、通常はプロジェクト内にnode_modulesフォルダが作成されます。確認には次のコマンドも使用できます。

npm ls express

フォルダが存在していても、必要なパッケージが入っているとは限りません。エラーに表示されたモジュール名が正しいか確認しましょう。

実行場所とファイルの指定を確認する

VSCodeのターミナルでpwd(PowerShellの場合)などを実行し、現在のフォルダを確認してください。package.jsonがあるプロジェクトのルートでインストールと実行を行うと、操作ミスを防ぎやすくなります。

なお、require()の探索は実行中のJSファイルの位置を基準に行われます。自作ファイルを読み込む場合はrequire("./config")のように、./やファイル名の誤りも確認してください。

修正後、同じフォルダでnode app.jsを再実行し、Server startedと表示されれば起動成功です。終了するときはCtrl + Cを押してください。

VSCodeでExpressをインストールしたあとにNode.jsを実行しServer startedと正常起動した画面

それでも解決しない場合

node -vやnpm -vで実行環境を確認しましょう。パッケージ名のスペル違い、別フォルダへのインストール、ローカルファイルの指定ミスも確認してください。ERR_MODULE_NOT_FOUNDと表示される場合は、ES Modulesのimport文も確認が必要です。

最後に

いかがでしたでしょうか。今回は、VSCodeでCannot find moduleが表示される場合の確認方法をご紹介しました。

まずはエラーのモジュール名を確認し、package.json、npm install、node_modules、実行場所の順番に確認してみてください。少しでも参考になれば幸いです。

開発依頼について

ココナラでWebスクレイピング開発サービスを出品しております。

自分で開発をしようと思ったけど、VBAでのネット記事が少なく困っている方も多いかと思います。

そんな方はいつでもお気軽にご相談ください。

また、本ブログからご依頼いただいた方については割引特典がございますので、

ご不明点と合わせてメッセージをいただけると幸いです。

業務の流れをまるごと自動化します Excel・Web・Teams・SaaSで業務全体を自動化

Webスクレイピング以外にもWebアプリの開発サービスも出品しております。

こちらについても、本ブログからご依頼いただいた方については割引特典がございますので、

お気軽にご相談ください。

スモールスケールのWebアプリ開発します 先ずはスモールスケールのWebアプリから始めませんか?

ご興味がある方はこちら!!

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

CAPTCHA