假设您想要安装一个库lib-a
,它具有依赖项dep-1
和dep-2
.如果lib-a
已在其包装中声明.json使用的dep-2
版本已经过时(比如说它在刚刚发布的 node 0.8.0上不起作用),但有一个dep-2
分支与 node 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
如果我要定制包装.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"
}
}
通过修改包.然后就可以运行json了
npm install lib-a
它将安装与node 0.8.0兼容的dep-2
分支.但是,这需要我有权修改lib-a
,对于我的具体情况我没有.从技术上讲,我可以使用fork lib-a
并对包进行上述更改.json.但在我的具体 case 中,lib-a
是another库的一个依赖项,所以我必须把它引用到的项目Forking ,等等...
所以问题是,有没有办法告诉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
那太棒了.如果不可能的话,我很高兴知道这一点,这样我就可以准备好Forking /定制项目链.