21

パッケージをローカルにインストールしたいのですが、npm は常にパッケージをグローバルな場所にインストールしています。次のコマンドを実行しています。

npm install serialport

私は .npmrc コマンドを持っておらず、-g フラグを使用していないため、ローカルにインストールしない理由がわかりません。global が false であることを示す構成ダンプのスニペットを次に示します。grep global global = false globalconfig = "/usr/local/etc/npmrc" globalignorefile = "/usr/local/etc/npmignore"

そして、パッケージはまだこのようにインストールされています

serialport@0.7.3 ../../../../node_modules/serialport

したがって、「ローカル」の意味について完全に間違っていない限り、これは間違っているようです。メインコードファイルで「require」を実行できるように、「ローカル」は現在の作業ディレクトリを意味するという印象を受けました。前の npm 関連の質問で参照されているhttp://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/を参照してください。

誰かが私にこれについてのヒントを教えてもらえますか? どうもありがとうございました。

PS serialport モジュールに固有のものではありません。それはそれらすべてで起こっています。

4

2 に答える 2

32

私の答えのほとんどは見つけることができます:http://npmjs.org/doc/folders.html#More-Information

私が理解しているのは、npm は適切な場所にインストールしようとするということです。したがって、project/node_modulesディレクトリがあり、/project にいて npm install を実行すると、product/node_modules.

誤って cdproject/cssを実行して npm install を実行した場合、npm はディレクトリが見つかるまでトラバースしますnode_modules。これは、誤って にインストールすることを防ぐためですproject/css

したがって、あなたの場合、プロジェクトのパスのどこかに node_module ディレクトリがあります。したがって、そのディレクトリを削除するかnode_modules、プロジェクトフォルダーにディレクトリを手動で作成することで修正できると思います。

于 2012-06-11T18:15:10.060 に答える
7

パッケージをインストールしようとしているフォルダーに package.json ファイルがある場合は、node_modules フォルダーが正しく作成されます。

基本パッケージ.json

{
    "name": "application-name",
    "version": "0.0.1"
}
于 2015-12-05T21:45:37.213 に答える