NPM软件包如何保证长期的正确性?

时间:2019-06-25 11:43:08

标签: npm

NPM软件包无法锁定其依赖项(和依赖项的依赖项),例如:

{
  "name": "my-package",
  "version": "1.0.0",
  "dependencies": {
    "someDep": "^1.2.3"
  }
}

my-package@1.0.0现在取决于someDep@^1.2.3

如果某天someDep升级到1.9.0,并且我在没有npm install my-package@1.0.0package.lock的项目中运行yarn.lock,则会安装someDep@1.9.0

someDep@1.2.3someDep@1.9.0之间可能引入了一些重大更改,它们将导致my-package@1.0.0被破坏。

如果我将someDep的版本设置为固定在1.2.3上,如下所示:

{
  "name": "my-package",
  "version": "1.0.0",
  "dependencies": {
    "someDep": "1.2.3"
  }
}

我当然可以将someDep的版本锁定为1.2.3,但是我不能强迫someDep的依赖项也进行修复,以使它们也可以使我失望。

我们该怎么做才能保证NPM软件包的长期正确性?

0 个答案:

没有答案