4

私は最近 node.js をインストールしましたが、ルーティングと Web アプリケーション開発のセットアップには Express が適していると言われました。

最新のエクスプレスと互換性がないように見えるノードの最新バージョンをインストールしました。

調べてみると、nave が見つかりました... RVM と同様に、nave を使用するとノードのバージョンを切り替えることができます。それで私は走りましたnave.sh install 0.4.11...それはうまくいき、走ることができました。

npm install express -g

これは、エクスプレスをグローバルにインストールする必要があると思いました。だから私は実行します:

express testapp

作成する

create : testapp
create : testapp/package.json
create : testapp/app.js
create : testapp/public/stylesheets
create : testapp/public/stylesheets/style.css
create : testapp/public/images
create : testapp/public/javascripts
create : testapp/views
create : testapp/views/layout.jade
create : testapp/views/index.jade

その後私は

cd testapp/
node app.js

私は得る

エラー: モジュール 'express' が見つかりません

これは通常の動作ですか?

Express はpackages.jsonにあるため、 を実行するnpm install -dと、ノード パス内の node_modules へのシンボリック リンクだけでなく、アプリケーション内に node_modules ディレクトリが作成されます。

4

2 に答える 2

4

一言で言えば、はい、これは通常の動作です。

-g オプションを指定して NPM を使用してパッケージをインストールすると、パッケージがグローバルにインストールされます。これにより、実行可能ファイルをパス (つまり、使用したエクスプレス スクリプト) に配置するなどの優れた処理が行われます。

ただし、これらのパッケージはノードが見つけられる場所には置かれません。

ノードがパッケージを見つけられるようにインストールするには、次のことも行う必要があります。

cd "your express app"
npm install express

これはローカルにインストールされます (アプリケーション ディレクトリのルートにある node_modules フォルダーに)。

これは主に、依存関係の競合を回避するためのものであり、ばかげているように見えるかもしれませんが、実際には非常に便利です。

グローバル インストールを使用する本当の理由がある場合 (たとえば、常に同じバージョンを共有するようにしたいアプリケーションが多数ある場合など)、npm link コマンドを使用できます。

NPM とグローバルとローカルの概要については、このブログ投稿を参照してください。

于 2011-09-15T21:56:45.617 に答える
1

Windows を使用している場合は、場所をパスに追加します。

export NODE_PATH="C:\Users\IMarek\AppData\Roaming\npm\node_modules"

変更:IMarekユーザー名に変更します。

于 2012-09-17T21:24:17.853 に答える