在 npm 中,有一个 ci
命令用于以干净状态安装项目。在文档中,it is claimed 表示:
通过跳过某些面向用户的功能,它可以比常规的 npm 安装快得多。它也比常规安装更严格,可以帮助捕获大多数 npm 用户增量安装的本地环境导致的错误或不一致。
纱线世界中最接近 npm ci
命令的等价物是什么?也许答案是我们在 yarn 中不需要这个,因为它的架构是我们不需要特殊模式的。也许答案是使用一堆配置设置。但是,我没有找到这个问题的完整答案,我相信拥有它会很有价值。
我相信就这么简单:
yarn install --frozen-lockfile
不幸的是,由于 yarn 模块解析的工作方式,仅执行 yarn install --frozen-lockfile
有时是不够的。您仍然可以留下无效的传递依赖。
要真正获得与 npm ci
相同的行为,您必须执行以下操作:
rm -rf node_modules && yarn install --frozen-lockfile
对于较新版本的纱线,您应该使用:
yarn install --immutable --immutable-cache --check-cache
如 the official Yarn docs 所述:😉
如果设置了 --check-cache 选项 [...] 如果您既遵循零安装模型并接受来自第三方的 PR,则建议将其作为 CI 工作流程的一部分,否则他们将拥有能够在提交之前更改签入的包。
在@Crafty_Shadow 的建议的基础上,我使它更加集成。
包.json
...
"scripts": {
...
"preci": "rm -fr node_modules",
"ci": "yarn install --frozen-lockfile"
},
...
npm ci
)。
package-lock.json
文件。这是使用 npm 安装时创建的。您可能需要执行 npm run ci
npm ci
是本机命令 ci
。正如前面的评论中所指出的,您必须使用 npm run ci
。
不定期副业成功案例分享
--immutable
,因为它已取代--frozen-lockfile
。--frozen-lockfile
被视为旧版:“为了向后兼容,我们提供了一个名为--frozen-lockfile
的别名,但将在以后的版本中删除。”