Rob*_*bba 7 dependencies dependency-management npm npm-install
我们在一些项目中使用 NodeJS 并面临一个必须有一个简单解决方案的问题(因为其他人似乎没有这个问题)。
在packages.json 中提到了一堆最低版本的依赖项,每个依赖项都可能有自己的重叠依赖项。添加依赖项的默认方式是使用 ^ 运算符,这似乎意味着“兼容”或“相同的主要版本,但次要版本可能不同”。
我理解 npm 的工作方式是npm install采用匹配的最高次要版本。不幸的是,“兼容”并没有像您希望的那样强制执行。
这让我们陷入的情况是,例如在开发人员机器上安装了 1.1.0 版本,但在开发和发布之间引入了一个有错误的新版本 1.2.0。在我们的构建机器上进行了新的构建,最终使用 1.2.0 并且我们引入了一个在开发中不存在的错误。
例如,我们尝试将 ^ 运算符更改为 =,但是当依赖项具有与请求的版本不兼容的子依赖项时,这会给我们带来麻烦。
总而言之,我有点困惑,但是npm install只要有变化,这个东西就会一直困扰着我们,因为如果包已经存在,开发机器不会做任何事情,但是构建机器总是得到新的副本。
我从 NuGet 知道它总是采用符合所有组合要求的最低版本。由于这对于给定的一组依赖项总是相同的,因此我更喜欢这种方法。有没有办法让 npm 也像这样工作?
Rob*_*bba -2
回答我自己的问题:
npm 引入了一个新命令npm ci,它执行与npm install最初使用包锁定文件添加包时相同的特定版本,但强制使用该特定版本。
请参阅https://docs.npmjs.com/cli/ci了解更多信息
| 归档时间: |
|
| 查看次数: |
763 次 |
| 最近记录: |