跳到主内容
版本:Next

pnpm install

别名: i

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

在 CI 环境中, 如果存在锁文件但需要更新,那么安装会失败.

工作空间内, pnpm install 会在所有项目中安装所有依赖. 如果想禁用这个行为, 将 recursive-install 设置为 false

摘要

命令含义
pnpm i --offline仅从存储中离线安装
pnpm i --frozen-lockfile不更新 pnpm-lock.yaml
pnpm i --lockfile-only只更新 pnpm-lock.yaml

配置项

--force

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

--offline

  • 默认值: false
  • 类型:Boolean

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

--prefer-offline

  • 默认值: false
  • 类型:Boolean

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

--prod, -P

  • 默认值:
    • 如果 NODE_ENVproduction: true
    • 如果 NODE_ENV 不是 production: false
  • 类型:Boolean

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

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

--dev, -D

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

--no-optional

不安装 optionalDependencies

--lockfile-only

  • 默认值: false
  • 类型:Boolean

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

--fix-lockfile

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

--frozen-lockfile

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

如果设置为 true, pnpm 不会生成锁文件,且如果锁文件跟清单文件不同步、锁文件需要更新或不存在锁文件,则会安装失败。

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 分支上的锁文件。 阅读有关 Git 分支锁文件的更多信息。

--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
警告

已弃用的功能

在后台启动存储服务器。 存储服务器会在安装完成后持续运行。 如果要停止存储服务器,请运行 pnpm server stop

--shamefully-hoist

  • 默认值: false
  • 类型:Boolean

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

--ignore-scripts

  • 默认值: false
  • 类型:Boolean

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

--filter <package_selector>

警告

过滤器目前无法在 v8 默认配置下正常工作,你必须明确地将 dedupe-peer-dependents 设置为false,以使其正常运行。 了解更多信息和进展,请参考 #6300

阅读更多有关过滤的内容。

--resolution-only

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