pnpm install

别名: i

pnpm install 用于安装项目所有依赖.

在CI环境中, 如果存在需要更新的 lockfile 会安装失败.

workspace内, pnpm install 下载项目所有依赖. 如果想禁用这个行为, 将 recursive-install 设置为 false.

pnpm install - 图1

摘要:

CommandMeaning
pnpm i —offline仅从 store 中离线下载
pnpm i —frozen-lockfile不更新 pnpm-lock.yaml
pnpm i —lockfile-only只更新 pnpm-lock.yaml

配置项

--force

强制重新安装依赖:重新获取并修改缓存中的包,由不兼容版本的 pnpm重新创建的lock文件和(或)模块目录。 安装所有 optionalDependencies,即使它们不满足当前环境(cpu、os、arch)。

--offline

  • 默认值: false
  • 类型:Boolean

true时,pnpm会仅使用已经在缓存中的包。 如果缓存中没有找不到这个包,那么就会安装失败。

--prefer-offline

  • 默认值: false
  • 类型:Boolean

如果为 true,缺失的数据将会从服务器获取,并绕过缓存数据的过期检查。 想强制使用离线模式, 请使用 --offline.

--prod, -P

如果环境变量中NODE_ENV被设置为 production,那么pnpm 不会安装任何属于 devDependencies 的包,如果有相关的包已经被安装了,则会清除这些包。 使用这个指令pnpm会忽略NODE_ENV ,强制pnpm以production的方式执行install命令。

--dev, -D

仅安装devDependencies并删除已安装的dependencies,无论 NODE_ENV是什么。

--no-optional

不安装 optionalDependencies 依赖

--lockfile-only

  • 默认值: false
  • 类型:Boolean

使用时,只更新 pnpm-lock.yamlpackage.json。 不写入 node_modules 目录。

--fix-lockfile

自动修复损坏的 lock 文件入口。

--frozen-lockfile

  • 默认值:
    • 非 CI: false
    • CI: true, 如果存在 lock 文件
  • 类型:Boolean

如果设置 true, pnpm 不会生成 lockfile 且如果 lockfile 跟 manifest 不同步/ 文件需要更新或不存在 lockfile 则会安装失败.

CI 环境中,该设置默认为 true。 以下代码用于检测 CI 环境:

https://github.com/watson/ci-info/blob/44e98cebcdf4403f162195fbcf90b1f69fc6e047/index.js#L54-L61

  1. exports.isCI = !!(
  2. env.CI || // Travis CI, CircleCI, Cirrus CI, GitLab CI, Appveyor, CodeShip, dsari
  3. env.CONTINUOUS_INTEGRATION || // Travis CI, Cirrus CI
  4. env.BUILD_NUMBER || // Jenkins, TeamCity
  5. env.RUN_ID || // TaskCluster, dsari
  6. exports.name ||
  7. false
  8. )

--reporter=<name>

  • 默认值:
    • TTY stdout: default
    • 非 TTY stdout: append-only
  • 类型:default, append-only, ndjson, silent

允许您选择将调试信息记录到终端, 以了解安装进度.

  • silent - 不会向控制台记录任何信息,也不包含致命错误
  • default - 标准为 TTY 的默认输出
  • append-only - 始终向末尾追加输出。 没有光标操作
  • ndjson - 最详细报告. 打印所有ndjson 格式日志

如果要更改要打印信息的类型,请使用 loglevel 设置。

--use-store-server

  • 默认值: false
  • 类型:Boolean

后台开启 store server. 安装完成后, store server 会持续运行. 执行pnpm server stop来停止 store server.

--shamefully-hoist

  • 默认值: false
  • 类型:Boolean

创建一个扁平node_modules 目录结构, 类似于npmyarn. WARNING: 这是非常不推荐的.

--ignore-scripts

  • 默认值: false
  • 类型:Boolean

不执行任何项目中 package.json 和它的依赖项中定义的任何脚本.

--filter <package_selector>

阅读更多有关 filter 的内容。