簡體   English   中英

使用NPM安裝軟件包時,您能告訴它使用其依賴項之一的不同版本嗎?

[英]When installing a package with NPM, can you tell it to use a different version of one of its dependencies?

假設您要安裝具有依賴項dep-1dep-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-2node0.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM