68

lib-a依存関係dep-1とを含むライブラリをインストールするとしdep-2ます。lib-aそのpackage.jsonで古いバージョンを使用することを宣言した場合dep-2(たとえば、リリースされたばかりのノード0.8.0では機能しない)、dep-2ノード0.8.0で機能するブランチがあります-ブランチ名node0.8.0

したがって、方程式のパッケージは次のとおりです。

git://github.com/user-a/lib-a
git://github.com/user-b/dep-1
git://github.com/user-c/dep-2
git://github.com/user-c/dep-2#node0.8.0

NPMにインストールするように指示する方法はありますが、代わりにlib-a使用しますか?dep-2#node0.8.0dep-2

NPMを使用すると、次のようなプロジェクトの特定のブランチをインストールできます。

npm install git://github.com/user-c/dep-2#node0.8.0

そして、のpackage.jsonをカスタマイズする場合は、次のように使用するようlib-aに指示できます。dep-2#node0.8.0

{
  "name": "lib-a",
  "dependencies": {
    "dep-1": ">= 1.5.0",
    "dep-2": "git://github.com/user-c/dep-2#node0.8.0"
  }
}

package.jsonを変更することで、次のコマンドを実行できます

npm install lib-a

そしてそれはノード0.8.0互換のdep-2ブランチをインストールします。しかし、それは私が変更するためのアクセス権を持っていることを必要としますlib-a、それは私の特定のケースでは私はしません。技術的には、フォークlib-aして上記の変更をpackage.jsonに加えることができます。しかし、私の特定のケースでは、別のlib-aライブラリの依存関係であるため、それが参照されているプロジェクトをフォークする必要があります...

だから問題は、NPMにインストールするように指示し、のブランチlib-aを使用するように指示する方法はありますか?このようなもの:node0.8.0dep-2

npm install lib-a --overrides dep-2:git://github.com/user-c/dep-2#node0.8.0

それは素晴らしいでしょう。それが不可能な場合は、それを知っておくとよいでしょう。そうすれば、プロジェクトのチェーンをフォーク/カスタマイズする準備をすることができます。

4

1 に答える 1

46

NPM インストール構文:

npm install (with no args in a package dir)
npm install <tarball file>
npm install <tarball url>
npm install <folder>
npm install [@<scope>/]<name> [--save|--save-dev|--save-optional] [--save-exact]
npm install [@<scope>/]<name>@<tag>
npm install [@<scope>/]<name>@<version>
npm install [@<scope>/]<name>@<version range>
npm i (with any of the previous argument usage)

これらの方法のいずれかを選択して、モジュールをインストールできます。

特定のバージョンをインストールする最も簡単な方法は次のとおりです。

npm install module@0.0.2

詳細: https://docs.npmjs.com/cli/install

于 2012-06-27T19:10:56.010 に答える