依存関係を持つライブラリlib-a
とdep-1
およびdep-2
をインストールするとします。 lib-a
がpackage.jsonで古いdep-2
のバージョンを使用するように宣言している場合(たとえば、出てきたばかりのノード0.8.0では動作しません)ノード0.8.0で動作するdep-2
のブランチ-ブランチ名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.0
の代わりにdep-2
を使用しますか?
NPMを使用すると、次のようなプロジェクトの特定のブランチをインストールできます。
npm install git://github.com/user-c/dep-2#node0.8.0
そして、lib-a
のpackage.jsonをカスタマイズする場合、次のように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
はanother libraryの依存関係であるため、参照されているプロジェクトをフォークする必要があります...
質問は、NPMにlib-a
をインストールし、node0.8.0
のdep-2
ブランチを使用するように指示する方法はありますか?このようなもの:
npm install lib-a --overrides dep-2:git://github.com/user-c/dep-2#node0.8.0
それは素晴らしいことです。それが不可能な場合は、知っておくといいので、プロジェクトのチェーンをフォーク/カスタマイズする必要があるように準備できます。
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 [email protected]