使用NPM安装软件包时,您能否告诉它使用其中一个版本的不同版本?
假设你想安装依赖关系dep-1和dep-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 ,对于我的具体情况我没有。 从技术上讲,我可以fork lib-a ,并对package.json进行上述修改。 但在我的具体情况下, lib-a是另一个库的依赖项,所以我必须分叉引用它的项目,并且… 
 所以问题是,有没有办法告诉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 
那将是真棒。 如果这是不可能的,那将是很好的知道,所以我可以准备自己必须叉/定制的项目链。
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) 
所以你可以select其中的一种方法来安装你的模块。
安装特定版本的最简单的方法是这样的:
 npm install module@0.0.2 
更多信息: https : //docs.npmjs.com/cli/install