3

私はいくつかのnode.jsのものを試してみたいと思っています.昨日、ウェブ上の誰かの指示に従ってそれをインストールしました.

別の例に移りましたが、ホーム ディレクトリが乱雑にならないように、そこからディレクトリ (~/node) を作成し、そこに必要なファイルを作成しました。ほら、サービスを実行するときが来たとき、expressモジュールが見つからないことを言って喜びを感じませんでした。

指示では、-gフラグを使用してエクスプレスをインストールするように指示されましたが、それは役に立ちませんでした。運が悪かったので、もう一度実行しました。

今、私はこれを見つけました: モジュール `express` が見つかりません | socket.io [node.js]

現在のディレクトリの下に再度インストールする必要があるようです。私はそれをやったし、それは動作します。サービスを実行したい各ディレクトリの下にインストールする必要がありますか? 不必要な重複のようです。

編集:

jsについてあまり知らなかったので、掘り下げて見つけました

app.use(express['static'](__dirname ));

これがおそらく私の問題の原因であることに気づきました。さらに調査したところ、http: //nodejs.org/api/modules.html#modules_loading_from_node_modules_foldersが見つかりました。これを上位レベルのディレクトリに一度インストールすると、問題が「解決」するはずです。モジュールのアンインストールについて気にするつもりはありませんが、次のプロジェクトで試してみて、どうなるか見てみます。

-gExpress をインストールするときに元の作成者がフラグを提案した理由はわかりません。

4

4 に答える 4

5

NPM は非常に優れたツールであり、node.js モジュールをローカルおよびグローバルにインストールできます。

ローカル モジュールのインストール

プロジェクトでモジュールを使用する場合は、ローカルにインストールする必要があります。そのため、npmはプロジェクト ディレクトリ内に node_modules というサブディレクトリを作成します。2 つの異なるプロジェクトに同じモジュールを使用する場合、npm はモジュールをダウンロードして 2 回インストールします。これはまったく正常なことであり、同じ依存関係の異なるバージョンを管理するのに役立ちます。

依存関係を管理し、特定のプロジェクトのモジュールをインストールする最良の方法は、 package.jsonに依存関係を入力し、次を使用してインストールすることです。

npm install

プロジェクトディレクトリ内。

コード内のモジュールにアクセスするには、require()関数を使用します。たとえば、expressjs の場合:

var express = require('express');
var app = express();
...

グローバルモジュールのインストール

npmを使用すると、モジュールをグローバルにインストールすることもできます。ただし、モジュールをグローバルにインストールすると、expressjs や express(1) と同様に、ターミナルでより多くのコマンドしか提供されないことに注意してください。

Expressjs をグローバルにインストールするには、ターミナルでこれを実行します

npm install -g express

グローバルにインストールされたモジュールを特定のプロジェクトで使用する場合は、ローカルにインストールする必要があります (-g を使用せずにプロジェクト ディレクトリに)。

これがあなたの質問に明確に答えることを願っています。

于 2013-07-22T09:39:15.970 に答える
1

Express は、グローバルにインストールすると、単純なアプリ構造を生成できます。このリンクを参照し、 express(1) を使用してアプリセクションを生成するまでスクロールします。簡単に始められる良い方法です。

于 2013-07-22T03:40:25.080 に答える
0

node.js プロジェクトと依存関係を設定するときに、Grunt [http://gruntjs.com/] を使用すると多くの利点があることがわかりました。ノードをセットアップしてプロジェクトを表現するにはさまざまな方法がありますが、Douglas Crockford アプローチを使用して「粒度を調整する」ことについては、多くのことが言えます。この場合、Grunt は、ノード プロジェクトを設定するためのデファクト スタンダードになりつつあり、最も一般的なタイプの node.js プロジェクト用の既存のテンプレートがあるため、重要です。ここ [https://github.com/blai/grunt-express] で Grunt Express を見つけることができます。

この場合、Grunt は他のプロジェクトと一貫性のあるプロジェクト構造を提供し、ノード パッケージ マネージャーの依存関係ファイルをセットアップし、高速プロジェクトを自動生成します。パッケージは node_modules ディレクトリに保持されます。Maven に精通している場合は、「設定よりも規則」に気付くかもしれません。

于 2013-07-22T08:41:46.090 に答える