1. ホーム
  2. Web プログラミング
  3. ジャバスクリプト

[解決済み】Node.jsで "Cannot find module "エラーを解決するには?

2021-12-28 19:26:11

質問内容

githubからプロジェクトをダウンロードし、要求されたとおりにビルドしました。

> npm install ../faye

> npm list
/home/dave/src/server
└─┬ [email protected]
  ├── [email protected]
  ├── [email protected]
  └── [email protected]

を実行すると app.js というエラーが発生します。 

> node app.js
node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: Cannot find module 'faye'
    at Function._resolveFilename (module.js:334:11)
    at Function._load (module.js:279:25)
    at Module.require (module.js:357:17)
    at require (module.js:368:17)
    at Object.<anonymous> (/home/dave/src/server/app.js:2:12)
    at Module._compile (module.js:432:26)
    at Object..js (module.js:450:10)
    at Module.load (module.js:351:31)
    at Function._load (module.js:310:12)
    at Array.0 (module.js:470:10)

解決方法は?

使用方法 npm install は、カレントディレクトリのみ (サブディレクトリは node_modules ). app.jsは、以下の場所にありますか? home/dave/src/server/ ? もしそうでなく、任意のディレクトリからモジュールを使用したい場合は、グローバルにインストールする必要があります。 npm install -g .

私は通常、ほとんどのパッケージをローカルにインストールし、プロジェクトのコードと一緒にチェックインできるようにしています。

更新(2019/8)しました。

現在では パッケージロック.json このファイルは、npm が node_modules ディレクトリを変更したときに自動的に生成されます。そのため、パッケージのチェックを省くことができます。 package-lock.json は、現在使用している node_module の正確なバージョンを追跡します。パッケージをインストールするには package-lock.json の代わりに package.json コマンドを使用します。 npm ci .

アップデート(2016/3)しました。

私の対応、特に自分のコードが依存しているパッケージのチェックインについては、多くの非難を受けました。数日前、誰かが自分のパッケージのすべてをアンパブリッシュしました ( https://kodfabrik.com/journal/i-ve-just-liberated-my-modules ReactやBabel、その他もろもろが壊れました。もしあなたがプロダクションコードを持っているなら、NPMがあなたのために依存関係を実際に維持することに頼ることはできないということが、今明らかになることを願っています。