pnpm install
Aliases: i
pnpm install is used to install all dependencies for a project.
在CI环境中, 如果存在需要更新的 lockfile 会安装失败.
Inside a workspace, pnpm install installs all dependencies in all the
projects. If you want to disable this behavior, set the recursive-install
setting to false.
摘要:
| Command | Meaning |
|---|---|
pnpm i --offline | 仅从 store 中离线下载 |
pnpm i --frozen-lockfile | pnpm-lock.yaml is not updated |
pnpm i --lockfile-only | Only pnpm-lock.yaml is updated |
配置项
--force
强制重新安装依赖:重新获取并修改缓存中的包,由不兼容版本的 pnpm重新创建的lock文件和(或)模块目录。 安装所有 optionalDependencies,即使它们不满足当前环境(cpu、os、arch)。
--offline
- Default: false
- Type: Boolean
If true, pnpm will use only packages already available in the store.
如果缓存中没有找不到这个包,那么就会安装失败。
--prefer-offline
- Default: false
- Type: Boolean
If true, staleness checks for cached data will be bypassed, but missing data
will be requested from the server. To force full offline mode, use --offline.
--prod, -P
- 默认值:
- If
NODE_ENVisproduction:true - If
NODE_ENVis notproduction:false
- If
- 类型: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
Only devDependencies are installed and dependencies are removed insofar they
were already installed, regardless of the NODE_ENV.
--no-optional
optionalDependencies are not installed.
--lockfile-only
- Default: false
- Type: Boolean
When used, only updates pnpm-lock.yaml and package.json. Nothing gets written to the node_modules directory.
--fix-lockfile
自动修复损坏的 lock 文件入口。
--frozen-lockfile
- 默认值:
- For non-CI: false
- For CI: true, if a lockfile is present
- Type: Boolean
If true, pnpm doesn't generate a lockfile and fails to install if the lockfile
is out of sync with the manifest / an update is needed or no lockfile is
present.
This setting is true by default in CI environments. 以下代码用于检测 CI 环境:
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。 Read more about git branch lockfiles.
--reporter=<name>
- 默认值:
- For TTY stdout: default
- For non-TTY stdout: append-only
- Type: default, append-only, ndjson, silent
允许您选择向终端输出安装进度的试信息的报告程序。
- silent - no output is logged to the console, not even fatal errors
- default - the default reporter when the stdout is TTY
- append-only - the output is always appended to the end. 没有光标操作
- ndjson - the most verbose reporter. Prints all logs in ndjson format
If you want to change what type of information is printed, use the loglevel setting.
--use-store-server
- Default: false
- Type: Boolean
在后台启动 store server. store server 会在安装完成后持续运行. To stop the store server, run pnpm server stop
--shamefully-hoist
- Default: false
- Type: Boolean
Creates a flat node_modules structure, similar to that of npm or yarn.
WARNING: This is highly discouraged.
--ignore-scripts
- Default: false
- Type: Boolean
Do not execute any scripts defined in the project package.json and its
dependencies.
--filter <package_selector>
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
--resolution-only
重新进行解析:对于打印出peer dependency 问题很有用。