web-dev-qa-db-ja.com

NPMと共にインストールしたときにExpressモジュールが見つかりません

エクスプレスで作成されたapp.jsファイルを実行しようとすると、次のエラーが表示されます。

$ node app.js

node.js:134
        throw e; // process.nextTick error, or 'error' event on first tick
        ^
Error: Cannot find module 'express'
    at Function._resolveFilename (module.js:320:11)

express --versionと入力すると、2.3.3のreturnステートメントが返されます。 Expressをインストールするためにnpmを使用しました。これらの手順を使用して手動でnpmを作成する必要がありました。

git clone http://github.com/isaacs/npm.git
cd npm
Sudo make install

エラーはError: Cannot find module 'express'です。

Npmとexpressをインストールした後、npmによって作成されたモジュールをexpressに表示させるために何かする必要がありますか?

  • 私のノードはバージョン:0.4.6
  • 私のエクスプレスはバージョン:2.3.3
  • 私のnpmはバージョンです:1.0.6

Expressはグローバルにインストールされます。 -gフラグを使用してインストールしました。


編集:"node -e require.paths"を試してみると:

[ '/home/user/.node_modules',
  '/home/user/.node_libraries',
  '/usr/local/lib/node' ]

そのため、ノードはnpmインストールを検出していません。 nodeでnpmインストールを検出するにはどうすればよいですか?

47
Kelp

同じ問題がありました。これは私にとってはうまくいきました:

Npm(今?)がノードモジュールを/usr/local/lib/node_modules/および/usr/local/lib/node/

私がしたことは、node_modulesからノードにすべてをコピーするだけでした:Sudo cp -r /usr/local/lib/node_modules/* usr/local/lib/node/そして今、それは私のために働いているようだ。

これがあなたを助けることを願っています:-)

8
Gorm Casper
  • エクスプレスをインストール

    npm install -g express

  • 新しいアプリを作成する

    express your_app

  • アプリディレクトリにcd

    cd your_app

  • npmリンクを使用してモジュールを解決します

    npm link express

68
just_a_dude

Require()にはローカルインストールを使用し、コマンドラインアプリにはグローバルインストールを使用します。

両方が必要な場合は、npm linkコマンド。

27
isaacs

Ubuntu 12.04では、export NODE_PATH=/usr/local/lib/node_modulesを/.bashrcに追加して、グローバルにインストールされたモジュールを使用する必要があります。

20
ezraspectre

Npmは/usr/local/lib/node_modulesにグローバルモジュールをインストールするように更新されましたが、ノード独自のrequire.pathsはまだこの変更を反映していないようです。

2つの合理的なソリューションがあります。

  1. アプリケーションの上部に次のコードを追加します。

    require.paths.Push('/usr/local/lib/node_modules');
    
    • プロ:非侵襲的、追加が簡単

    • 欠点:規律が必要です。ノードの将来のバージョンwillrequire.pathsへのアクセスを制限します

  2. ルートとして、次を実行します。

    ln -s /usr/local/lib/node_modules /usr/local/lib/node
    
    • プロ:合理的に非侵襲的

    • 短所:rootが必要で、Linux fsを変更し、システムの更新に耐えられない可能性があります

15
Rob Raisch

NODE_PATH=/usr/local/lib/node_modules in 。bashrcまたは。bash_profile?私はそれが本当の正しい方法だと思います。

6

ウィンドウを使用している場合、環境変数NODE_PATHは設定されていないため、node fileName.jsライブラリが見つかりません。

コンソールで変数を確認し、存在しない場合は作成します。 NODE_HOME\node_modules値、ここでNODE_HOMEは、ノードのインストールディレクトリです。このパスは、npm installがダウンロード時にすべてのモジュールを置く場所です。

2
Loïc

require.pathsは削除されました。代わりにNODE_PATH環境変数を使用してください。

2
vapour

NODE_PATH=NODE_HOME\node_modulesを設定します。

Windows 7を使用していますが、正常に動作します。

2
buzzcoder

これを行う最も簡単な方法は、アプリのフォルダーからnpm installを実行することです。これは、npmにすべてを接続するように指示します。

express <appname>の後の最後の命令です:

...
dont forget to install dependencies:
$ cd <appname> && npm install
1
orbiteleven

gulpをインストールし、コマンドラインでこのgulpコマンドを実行すると、gulp: command not foundエラーが発生しました。グローバルgulpフォルダーではなく、/home/YOURUSERNAME/.node/lib/node_modulesであるローカルフォルダーにnpmをインストールしたようです。

次のコマンドを実行することにより、npmルートフォルダーを確認できます:npm root -g。これは、予想される/home/YOURUSERNAME/.node/lib/node_modulesではなく、個人ディレクトリ/usr/local/lib/node_modulesを返していました。

これを修正するには、npm config set prefix /usr/localコマンドを実行します。

0
Bilal

macユーザー向け

cd /usr/local/lib/node
Sudo ln -s ../node_modules/* ./$1
0
Soyoes

Macコンピューターでのエクスプレスに関するすべての問題:

解決策は次のとおりです。

  1. chownユーザーの.npmフォルダー:

    Sudo chown -R Webmaste /Users/webmaste/.npm/
    
  2. テストフォルダーまたはフォルダーで:

    Sudo npm install -g [email protected]
    
  3. 実際の場所からエクスプレスを呼び出します:

    /usr/local/share/npm/bin/express
    
  4. Sudo cd . && npm install

  5. 最後に:

    node app
    

コンソールの最終メッセージは次のようになります。

Express server listening on port 3000 in development mode

0
galo hernandez

最後に、Linuxで行う良い方法は、次のコマンドを使用することです:Sudo apt-get install node-express

ただし、express 4では、express-generatorを使用してアプリのスケルトンを作成し、「npm install express-generator -g」でインストールしてから、「express myapp」コマンドを実行する必要があります。 install express も参照してください

0
websoft102030