跳至主要内容
版本: 9.x

pnpm install

别名: i

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

在 CI 环境中,如果存在 lockfile 但需要更新,安装将失败。

工作区 中,pnpm install 会安装所有项目中的所有依赖项。如果你想禁用此行为,将 recursive-install 设置设置为 false

TL;DR

命令含义
pnpm i --offline仅从仓库中离线安装
pnpm i --frozen-lockfilepnpm-lock.yaml 不会更新
pnpm i --lockfile-only仅更新 pnpm-lock.yaml

选项

--force

强制重新安装依赖项:重新获取仓库中修改的包,重新创建 lockfile 和/或由不兼容的 pnpm 版本创建的模块目录。安装所有可选依赖项,即使它们不满足当前环境(cpu、os、arch)。

--offline

  • 默认值:false
  • 类型:布尔值

如果为 true,pnpm 将仅使用仓库中已有的包。如果本地找不到包,安装将失败。

--prefer-offline

  • 默认值:false
  • 类型:布尔值

如果为 true,将绕过缓存数据的陈旧性检查,但会从服务器请求丢失的数据。要强制完全离线模式,请使用 --offline

--prod, -P

  • 默认值
    • 如果 NODE_ENVproductiontrue
    • 如果 NODE_ENV productionfalse
  • 类型:布尔值

如果设置,pnpm 将忽略 NODE_ENV,而是使用此布尔值来确定环境。

如果为 true,pnpm 不会安装 devDependencies 中列出的任何包,并将删除已安装的那些包。如果为 false,pnpm 将安装 devDependenciesdependencies 中列出的所有包。

--dev, -D

仅安装 devDependencies,并删除已安装的 dependencies,无论 NODE_ENV 如何。

--no-optional

不会安装 optionalDependencies

--lockfile-only

  • 默认值:false
  • 类型:布尔值

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

--fix-lockfile

自动修复损坏的 lockfile 条目。

--frozen-lockfile

  • 默认值
    • 对于非 CI:false
    • 对于 CI:true,如果存在 lockfile
  • 类型:布尔值

如果为 true,pnpm 不会生成 lockfile,如果 lockfile 与清单不同步/需要更新或不存在 lockfile,则安装失败。

此设置在 CI 环境 中默认情况下为 true。以下代码用于检测 CI 环境

https://github.com/watson/ci-info/blob/44e98cebcdf4403f162195fbcf90b1f69fc6e047/index.js#L54-L61
exports.isCI = !!(
env.CI || // Travis CI, CircleCI, Cirrus CI, GitLab CI, Appveyor, CodeShip, dsari
env.CONTINUOUS_INTEGRATION || // Travis CI, Cirrus CI
env.BUILD_NUMBER || // Jenkins, TeamCity
env.RUN_ID || // TaskCluster, dsari
exports.name ||
false
)

--merge-git-branch-lockfiles

合并所有 git 分支 lockfile。 详细了解 git 分支 lockfile。

--reporter=<name>

  • 默认值
    • 对于 TTY stdout:default
    • 对于非 TTY stdout:append-only
  • 类型:defaultappend-onlyndjsonsilent

允许你选择将调试信息记录到终端的报告程序,以了解安装进度。

  • silent - 不会将任何输出记录到控制台,甚至不会记录致命错误
  • default - stdout 为 TTY 时的默认报告程序
  • append-only - 输出始终附加到末尾。不会执行光标操作
  • ndjson - 最详细的报告程序。以 ndjson 格式打印所有日志

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

--use-store-server

  • 默认值:false
  • 类型:布尔值

在后台启动仓库服务器。仓库服务器将在安装完成后继续运行。要停止仓库服务器,请运行 pnpm server stop

--shamefully-hoist

  • 默认值:false
  • 类型:布尔值

创建扁平化的 node_modules 结构,类似于 npmyarn 的结构。警告:强烈建议不要这样做。

--ignore-scripts

  • 默认值:false
  • 类型:布尔值

不要执行项目 package.json 及其依赖项中定义的任何脚本。

--filter <package_selector>

警告

Filter 目前与 v8 默认配置不兼容,你必须隐式将 dedupe-peer-dependents 设置为 false 才能使其正常工作。有关更多信息和进度,请参阅 #6300

详细了解过滤。

--resolution-only

重新运行解析:对于打印对等依赖项问题很有用。