【问题标题】:pnpm equivalent command for npm cinpm ci 的 pnpm 等效命令
【发布时间】:2021-11-29 12:21:42
【问题描述】:
npm ci 在pnpm 中的等效命令是什么?
根据npm install的文档:
pnpm install 用于安装项目的所有依赖项。
在 CI 环境中,如果存在锁定文件但需要更新,则安装会失败。
“CI 环境”是如何定义的?
以下是什么意思?依赖项可以更新,但是
pnpm-lock.yaml没动过?
pnpm i --frozen-lockfile # pnpm-lock.yaml 未更新
【问题讨论】:
标签:
npm
continuous-integration
pnpm
npm-ci
【解决方案1】:
pnpm 中 npm ci 的等效命令是什么?
等价于
pnpm install --frozen-lockfile
但是,即使您不使用--frozen-lockfile,如果锁定文件是最新的,pnpm 也会自动使用更快的安装策略。这由prefer-frozen-lockfile 设置控制,默认为true。
“CI 环境”是如何定义的?
pnpm 使用is-ci 包来检测环境是否为CI。
pnpm i --frozen-lockfile # pnpm-lock.yaml is not updated
这意味着如果锁定文件与package.json 文件不是最新的,那么pnpm install 将抛出异常而不是更新锁定文件。如果锁定文件是最新的,pnpm 将对node_modules 进行任何必要的更新。