6

サブジェクトをググるのが難しい — ユーザーからの質問が多すぎます。私の質問はパッケージ開発に関するものです。グローバルではなくインストールするときに、パッケージのユーザーに「npm WARN prefer global」が表示されるようにします。

以前はそのような警告があると思っnpm install yoていましたが、今はありません。少なくとも私には見えません。

私の環境:

  › npm --version
1.4.10
  › node -v
v0.10.28
4

3 に答える 3

12

Ben Fortune の回答では、npm パッケージの作成者がパッケージをグローバルインストールを優先するように指定する方法を指定しています(ファイルにキーと値"preferGlobal": trueのペアを追加することによりpackage.json)。

悲しいことに、OP 自身がコメントで指摘しているように、これは、そのようなパッケージをローカルにインストールするユーザーに対して常に警告をトリガーするには十分ではありません

npm 2.3.0 の時点で、global-installation-preferred パッケージをローカルにインストールするときの動作は次のとおりですnpm install <pkgName>(つまり、を使用せずに-g):

警告 - npm WARN prefer global <pkgName>@<ver> should be installed with -g- は、次の場合にのみトリガーされます。

  • 現在のディレクトリに有効なpackage.jsonファイルがあり、
  • AND 値がオブジェクト (空であるかどうかに関係なく) であるdependenciesand/oroptionalDependenciesキーを含む - 手元のパッケージがたまたまそこに含まれている場合を除きます。

実用的には、これは、次のシナリオで実行中(つまり、なし) に警告が表示されないことを意味しますnpm install <pkgName>-g

  • npm パッケージ プロジェクトではないディレクトリ (package.jsonファイルなし)。
  • たまたま実行時の依存関係がまったくない npm package-project ディレクトリ内 (dependenciesおよび/またはoptionalDependenciesキーなし - 対照的に、キーdevDependenciesおよび/またはpeerDependencies単独では警告はトリガーされません)。
  • pkgName(定義によりローカルの)ランタイム依存関係としてすでにインストールされている npm package-project ディレクトリに(キーdependenciesまたはでoptionalDependencies)。

--loglevel sillyEven はこの動作を変更しないことに注意してください。そのため、現在、無条件で警告を表示する方法はありません。

ただし、パッケージをグローバルとして指定すると、無条件の副作用が 1 つあります。npm レジストリ ( http://npmjs.com ) では、そのようなパッケージの右側のサイドバーに表示されるインストール コマンドはnpm install <pkgName> -g; つまり、-g.
[更新: この機能はしばらく前に機能しなくなり、2015 年 9 月 14 日現在も機能していません - https://github.com/npm/newww/issues/1017を参照してください]

于 2015-01-29T04:24:44.613 に答える
9

指定する必要があります

"preferGlobal": true

あなたのpackage.json

ドキュメンテーション

于 2014-06-16T14:11:44.477 に答える