假设你要安装的库lib-a
具有依赖dep-1
和dep-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
有没有办法告诉NPM安装lib-a
但使用dep-2#node0.8.0
代替dep-2
随着NPM可以安装这样一个项目的具体分支:
npm install git://github.com/user-c/dep-2#node0.8.0
如果我是定制的的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"
}
}
通过修改的package.json,你可以运行
npm install lib-a
它将安装节点0.8.0兼容dep-2
分支。 但是,这需要我有机会获得修改lib-a
这对于我的具体情况我不知道。 从技术上讲,我可以叉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
那将是真棒。 如果这是不可能的,这将是很好的了解,所以我可以准备自己不得不叉/自定义的项目链。