跳到主要内容
版本:Next

pnpm 执行

在项目范围内执行 shell 命令。

node_modules/.bin 会被添加到 PATH 中,因此 pnpm exec 可以执行依赖项中的命令。

示例

如果你的项目依赖 Jest,则无需全局安装 Jest,只需通过 pnpm exec 运行:

pnpm exec jest

当命令不与内置 pnpm 命令冲突时,exec 部分实际上是可选的,因此你也可以直接运行:

pnpm jest

选项

exec 命令的任何选项都应列在 exec 关键字之前。 列在 exec 关键字之后的选项将传递给执行的命令。

好的写法(pnpm 会递归执行):

pnpm -r exec jest

错误的写法(pnpm 不会递归执行,但 jest 会接收到 -r 选项):

pnpm exec jest -r

--recursive, -r

在工作区的每个项目中执行 shell 命令。

当前包名称可通过环境变量 PNPM_PACKAGE_NAME 获取。

示例

修剪所有包的 node_modules 安装:

pnpm -r exec rm -rf node_modules

查看所有包的信息。这需要与 --shell-mode (或 -c) 选项一起使用才能使环境变量生效。

pnpm -rc exec pnpm view $PNPM_PACKAGE_NAME

--no-reporter-hide-prefix

并行运行命令时不隐藏前缀。

--resume-from <package_name>

从特定项目恢复执行。当你处理大型工作区且想从特定项目重新开始构建而不必按构建顺序重新运行所有前置项目时,这很有用。

--parallel

完全忽略并发和拓扑排序,在所有匹配包中立即运行给定脚本。这是跨多个包运行长时间进程(例如耗时较长的构建过程)的首选标志。

--shell-mode, -c

在 shell 中运行命令。UNIX 系统使用 /bin/sh,Windows 使用 \cmd.exe

--report-summary

在 run 命令文档中阅读此选项

--filter <package_selector>

了解更多关于过滤的内容。