相关疑难解决方法(0)

使用NPM安装软件包时,您能告诉它使用其依赖项之一的不同版本吗?

假设你要安装的库lib-a具有依赖性dep-1dep-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
Run Code Online (Sandbox Code Playgroud)

有没有办法告诉NPM安装lib-a,但使用dep-2#node0.8.0而不是dep-2

使用NPM,您可以安装项目的特定分支,如下所示:

npm install git://github.com/user-c/dep-2#node0.8.0
Run Code Online (Sandbox Code Playgroud)

如果我要自定义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"
  }
}
Run Code Online (Sandbox Code Playgroud)

通过修改package.json,您可以运行

npm install lib-a
Run Code Online (Sandbox Code Playgroud)

它将安装节点0.8.0兼容dep-2分支.但是,这需要我有权修改lib-a,对于我的具体情况,我没有.从技术上讲,我可以fork lib-a并对package.json进行上述更改.但在我的具体情况下,lib-a另一个库的依赖,所以我必须分叉它引用的项目,然后......

所以问题是,有没有办法告诉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
Run Code Online (Sandbox Code Playgroud)

那将是真棒.如果这是不可能的,那将是很好的知道,所以我可以准备自己必须分叉/定制项目链.

dependencies node.js npm

61
推荐指数
1
解决办法
7万
查看次数

标签 统计

dependencies ×1

node.js ×1

npm ×1