首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当用NPM安装一个包时,你能告诉它使用它的一个依赖项的不同版本吗?

当用NPM安装一个包时,你能告诉它使用它的一个依赖项的不同版本吗?
EN

Stack Overflow用户
提问于 2012-06-28 02:53:41
回答 1查看 67.5K关注 0票数 65

假设您想要安装一个包含dep-1dep-2依赖项的库lib-a。如果lib-a在它的package.json中声明使用一个过时的dep-2版本(假设它在刚推出的节点0.8.0上不起作用),但是dep-2有一个分支可以使用节点0.8.0 -分支名称node0.8.0

因此,等式中的包是:

代码语言:javascript
复制
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,您可以安装项目的特定分支,如下所示:

代码语言:javascript
复制
npm install git://github.com/user-c/dep-2#node0.8.0

如果我要定制lib-a的package.json,您可以这样告诉它使用dep-2#node0.8.0

代码语言:javascript
复制
{
  "name": "lib-a",
  "dependencies": {
    "dep-1": ">= 1.5.0",
    "dep-2": "git://github.com/user-c/dep-2#node0.8.0"
  }
}

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

代码语言:javascript
复制
npm install lib-a

它将安装node 0.8.0 compatible dep-2分支。但是,这需要我有权修改lib-a,但对于我的特定情况,我没有权限。从技术上讲,我可以派生lib-a并对package.json进行上述更改。但在我的特定情况下,lib-a是另一个库的依赖项,所以我必须派生引用它的项目,等等……

所以问题是,有没有一种方法可以告诉NPM安装lib-a,并告诉它使用dep-2node0.8.0分支?如下所示:

代码语言:javascript
复制
npm install lib-a --overrides dep-2:git://github.com/user-c/dep-2#node0.8.0

那就太棒了。如果这是不可能的,这将是很好的知道,这样我就可以准备自己不得不分叉/定制项目链。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-28 03:10:56

NPM安装语法:

代码语言:javascript
复制
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)

因此,您可以选择其中一种方法来安装您的模块。

安装特定版本的最简单方法是这样的:

代码语言:javascript
复制
npm install module@0.0.2

更多信息:https://docs.npmjs.com/cli/install

票数 46
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11233133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档