跳到主内容
版本:Next

pnpm install

别名: i

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

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

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

TL;DR

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

Options

--force

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

--offline

  • 默认值: false
  • 类型:Boolean

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

--prefer-offline

  • 默认值: false
  • 类型:Boolean

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

--prod, -P

  • 默认值:
    • If NODE_ENV is production: true
    • If NODE_ENV is not production: false
  • Type: Boolean

If set, pnpm will ignore NODE_ENV and instead use this boolean value for determining the environment.

If true, pnpm will not install any package listed in devDependencies and will remove those insofar they were already installed. If false, pnpm will install all packages listed in devDependencies and dependencies.

--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 文件
  • Type: Boolean

如果设置 true, pnpm 不会生成 lockfile 且如果 lockfile 跟 manifest 不同步/ 文件需要更新或不存在 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 分支上的 lockfiles。 阅读有关 git 分支 lockfiles 的更多信息。

--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 会在安装完成后持续运行. 如果要停止 store server,请运行 pnpm server stop

--shamefully-hoist

  • 默认值: false
  • 类型:Boolean

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

--ignore-scripts

  • 默认值: false
  • 类型:Boolean

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

--filter <package_selector>

warning

Filter currently does not work properly with v8 default config, you have to implicitly set dedupe-peer-dependents to false to have that work. For more info and progress please refer to #6300

阅读更多有关 filter 的内容。

--resolution-only

添加于:v8.3.0

重新进行解析:对于打印出peer dependency 问题很有用。