エクスプレスで作成された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に表示させるために何かする必要がありますか?
Expressはグローバルにインストールされます。 -g
フラグを使用してインストールしました。
編集:"node -e require.paths"
を試してみると:
[ '/home/user/.node_modules',
'/home/user/.node_libraries',
'/usr/local/lib/node' ]
そのため、ノードはnpmインストールを検出していません。 nodeでnpmインストールを検出するにはどうすればよいですか?
同じ問題がありました。これは私にとってはうまくいきました:
Npm(今?)がノードモジュールを/usr/local/lib/node_modules/
および/usr/local/lib/node/
私がしたことは、node_modulesからノードにすべてをコピーするだけでした:Sudo cp -r /usr/local/lib/node_modules/* usr/local/lib/node/
そして今、それは私のために働いているようだ。
これがあなたを助けることを願っています:-)
エクスプレスをインストール
npm install -g express
新しいアプリを作成する
express your_app
アプリディレクトリにcd
cd your_app
npmリンクを使用してモジュールを解決します
npm link express
Require()にはローカルインストールを使用し、コマンドラインアプリにはグローバルインストールを使用します。
両方が必要な場合は、npm link
コマンド。
Ubuntu 12.04では、export NODE_PATH=/usr/local/lib/node_modules
を/.bashrcに追加して、グローバルにインストールされたモジュールを使用する必要があります。
Npmは/usr/local/lib/node_modules
にグローバルモジュールをインストールするように更新されましたが、ノード独自のrequire.paths
はまだこの変更を反映していないようです。
2つの合理的なソリューションがあります。
アプリケーションの上部に次のコードを追加します。
require.paths.Push('/usr/local/lib/node_modules');
プロ:非侵襲的、追加が簡単
欠点:規律が必要です。ノードの将来のバージョンwillrequire.paths
へのアクセスを制限します
ルートとして、次を実行します。
ln -s /usr/local/lib/node_modules /usr/local/lib/node
プロ:合理的に非侵襲的
短所:rootが必要で、Linux fsを変更し、システムの更新に耐えられない可能性があります
NODE_PATH=/usr/local/lib/node_modules
in 。bashrcまたは。bash_profile?私はそれが本当の正しい方法だと思います。
ウィンドウを使用している場合、環境変数NODE_PATH
は設定されていないため、node fileName.js
ライブラリが見つかりません。
コンソールで変数を確認し、存在しない場合は作成します。 NODE_HOME\node_modules
値、ここでNODE_HOME
は、ノードのインストールディレクトリです。このパスは、npm installがダウンロード時にすべてのモジュールを置く場所です。
require.paths
は削除されました。代わりにNODE_PATH
環境変数を使用してください。
NODE_PATH=NODE_HOME\node_modules
を設定します。
Windows 7を使用していますが、正常に動作します。
これを行う最も簡単な方法は、アプリのフォルダーからnpm install
を実行することです。これは、npmにすべてを接続するように指示します。
express <appname>
の後の最後の命令です:
...
dont forget to install dependencies:
$ cd <appname> && npm install
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
コマンドを実行します。
macユーザー向け
cd /usr/local/lib/node
Sudo ln -s ../node_modules/* ./$1
Macコンピューターでのエクスプレスに関するすべての問題:
解決策は次のとおりです。
chown
ユーザーの.npmフォルダー:
Sudo chown -R Webmaste /Users/webmaste/.npm/
テストフォルダーまたはフォルダーで:
Sudo npm install -g [email protected]
実際の場所からエクスプレスを呼び出します:
/usr/local/share/npm/bin/express
Sudo cd . && npm install
最後に:
node app
コンソールの最終メッセージは次のようになります。
Express server listening on port 3000 in development mode
最後に、Linuxで行う良い方法は、次のコマンドを使用することです:Sudo apt-get install node-express
ただし、express 4では、express-generatorを使用してアプリのスケルトンを作成し、「npm install express-generator -g」でインストールしてから、「express myapp」コマンドを実行する必要があります。 install express も参照してください