![](/img/trans.png)
[英]Can you skip some dependencies when installing an npm package from a git repository?
[英]When installing a package with NPM, can you tell it to use a different version of one of its dependencies?
假設您要安裝具有依賴項dep-1
和dep-2
的庫lib-a
。 如果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.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
是另一個庫的依賴項,所以我必須分叉它引用的項目,然后依次...
所以問題是,有沒有辦法告訴NPM安裝lib-a
,並告訴它使用dep-2
的node0.8.0
分支? 像這樣的東西:
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 module@0.0.2
更多信息: https : //docs.npmjs.com/cli/install
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.