首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对NPM收缩膜的理解

对NPM收缩膜的理解
EN

Stack Overflow用户
提问于 2018-06-07 14:32:33
回答 1查看 11.1K关注 0票数 8

最近发现了npm-audit,并且在第一次运行时就标记了许多漏洞,主要是围绕包及其依赖项。

为了解决这些漏洞,我发现了npm shrinkwrap,它允许我指定应该使用哪些版本及其依赖项?这就是我对它的看法(请纠正我的错误,在这里学习)。

我试图修复的一个例子是模块hoek,在我的package.json中,这个设置为"hoek": "^5.0.3"

当我运行npm shrinkwrap时,其中一个依赖项将hoek设置为版本2

代码语言:javascript
复制
"boom": {
  "version": "2.10.1",
  "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
  "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
  "requires": {
    "hoek": "2.x.x"
  },
  "dependencies": {
    "hoek": {
      "version": "2.16.3",
      "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
      "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
    }
  }
},

我想我可以编辑它,并指定我想让依赖项像这样使用的版本

代码语言:javascript
复制
  "boom": {
  "version": "2.10.1",
  "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
  "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
  "dev": true,
  "requires": {
    "hoek": "2.x.x"
  },
  "dependencies": {
    "hoek": {
      "version": "5.0.3",
      "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz",
      "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
      "dev": true
    }
  }
},

但是,当我运行npm shrinkwrapnpm install时,所有这些都会恢复到原来的

我该怎么处理这件事?收缩包装是正确的选择,还是我试图用它来做我根本做不到的事情?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-07 14:37:08

NPM 收缩包装用于锁定项目中的依赖版本。

在使用npm安装npm安装包名称并更新node_modules文件夹之后,您应该运行npm收缩包装。

它将创建新的npm-shrinkwrap.json文件,其中包含有关您使用的所有包的信息,您必须提交该文件。

下一次,当有人调用npm-shrinkwrap.json npm时,它将从安装包,您将在所有机器上拥有相同的环境。

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

https://stackoverflow.com/questions/50743893

复制
相关文章

相似问题

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