package-lock.json不应该添加.gitignore.相反,我强烈建议
您应该将您添加package-lock.json
到版本控制存储库.
我还强烈建议使用npm ci
而不是npm install
在构建应用程序时,工作流程需要存在ci
.(npm install -g npm
命令的最大缺点之一是它可能会改变它npm install
,而package-lock.json
只使用lockfile中的版本并且如果package-lock.json npm ci
不同步则会产生错误.)
有一个强大的用例,可以相信项目的依赖关系可以在不同的机器上以可靠的方式重复解决.
从package-lock.json
你得到的确是:一个已知的工作状态.
在过去,我有没有package-lock.json/shrinkwrap/yarn.lock文件的项目,这些文件的构建将在一天内失败,因为随机依赖关系会有更新.这些问题有时难以解决,因为您有时不得不猜测最后一个工作版本是什么.
关于测试项目的最新依赖项:这是package.json
为了什么,我认为它应该由开发人员运行,开发人员也在本地运行测试,如果出现问题则解决问题,然后谁提交更改npm ci
.(如果升级失败,我可以恢复到最后一次工作package-lock.json
.)