gpt4 book ai didi

node.js - 开发者使用 npm-ci 是一个好的 NPM 工作流程吗?

转载 作者:行者123 更新时间:2023-12-05 02:31:03 24 4
gpt4 key购买 nike

我在一个大型项目中工作,大约有 10 位开发人员。我们有 package.json 和生成的 package-lock.json 提交,我们的 ci 管道执行 npm ci 以根据 恢复包>package-lock.json.

目前,开发人员被指示克隆存储库并运行 npm install。但是,我发现 npm install 将安装与 package.json 中的版本规范匹配的不同版本 - 例如,^5.0.5 可能导致 npm install 安装版本 5.1.1,或者保留 5.0.5(如果它已经存在)。

因此,我想将针对开发人员的说明更改为:

  • (一般情况)如果你不想改变包或包版本,只使用npm ci
  • 如果这样做,请使用 npm install 和/或 npm update(可能使用 --save-dev),在本地进行测试,然后然后提交生成的 package.jsonpacakge-lock.json

这些说明合理吗?我错过了什么吗?

最佳答案

根据文档“此命令类似于 npm install,除了它旨在用于自动化环境,例如测试平台、持续集成和部署——或您需要的任何情况想确保您正在干净地安装您的依赖项。” (强调我的)。

我更喜欢使用它而不是“安装”,因为它为 node_modules 文件夹的状态提供了一些保障。

  • 它将删除模块文件夹(如果存在),这将删除不在锁定文件中的所有内容,但可能会在之前的安装中意外出现。
  • 如果有人手动更改依赖项并且没有更新锁定文件,它将抛出错误。
  • 它会比安装更快,因为它不需要构建新的依赖树,而且它会保留通过标签安装的依赖版本(如 latestnext) 或通配符 (*)。有时这是一件非常好的事情 - 最近 colors incident是一个很好的例证。

基本上这意味着我和我的所有同事将获得相同的 node_modules 文件夹内容。 Yarn 早期的优势之一是使用锁定文件进行可重现安装,这被认为是一种很好的做法。

关于node.js - 开发者使用 npm-ci 是一个好的 NPM 工作流程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71691283/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com