May*_*MP5 3 continuous-integration github node.js npm github-actions
我对整个 CI/CD 世界有点陌生,但每当我看到config.yml任何 Node js 项目中的文件时,总是会npm ci出现npm install. 我已经从文档中阅读了一些内容,但我仍然不清楚。有人可以用清晰简洁的语言解释一下吗?
Kam*_*ski 10
npm install为您生成 package-lock.json。该文件包含您安装的所有依赖项的确切版本号以及传递依赖项的版本号,所有这些都基于您在 package.json 中定义的内容。但请注意,在 package.json 中,您可以定义以^或开头的版本~,这表明您要安装特定依赖项的最新补丁或次要版本。因此,每次运行npm installpackage-lock.json 时,最终可能会包含较新版本的软件包(如果有)。
npm ci另一方面不会生成 package-lock.json 文件。恰恰相反。它要求您的 package-lock.json 已经存在,并且它会准确安装其中列出的版本。这是您想要在 CI/CD 管道上运行的命令。通过这种方式,您可以确保您的管道使用与您上次在本地使用的完全相同的依赖项,并可以确认它们是否适合您。