假设您要安装具有依赖项lib-a
和dep-1
的库dep-2
。如果{(1}}已在其package.json中声明使用过时的lib-a
版本(假设它在刚刚出现的节点0.8.0上不起作用),但是有一个与节点0.8.0一起使用的dep-2
的分支 - 分支名称dep-2
。
所以等式中的包是:
node0.8.0
有没有办法告诉NPM安装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
,但是使用lib-a
代替dep-2#node0.8.0
?
使用NPM,您可以安装项目的特定分支,如下所示:
dep-2
如果我要自定义npm install git://github.com/user-c/dep-2#node0.8.0
的package.json,您可以告诉它使用lib-a
这样:
dep-2#node0.8.0
通过修改package.json,您可以运行
{
"name": "lib-a",
"dependencies": {
"dep-1": ">= 1.5.0",
"dep-2": "git://github.com/user-c/dep-2#node0.8.0"
}
}
它将安装节点0.8.0兼容npm install lib-a
分支。但是,这需要我有权修改dep-2
,对于我的具体情况,我没有。从技术上讲,我可以分叉lib-a
并对package.json进行上述更改。但在我的具体情况中,lib-a
是另一个库的依赖项,因此我必须将它引用的项目分开,然后依次...
所以问题是,有没有办法告诉NPM安装lib-a
,并告诉它使用lib-a
的{{1}}分支?像这样:
node0.8.0
那太棒了。如果不可能的话,那将是很好的,所以我可以准备自己必须分叉/定制项目链。
答案 0 :(得分:45)
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