在包含该脚本的每个包中运行一个npm脚本
安装lerna以访问lerna CLI。
使用
$ lerna run <script> -- [..args] # 在所有有my-script脚本的包中运行npm run my-script
$ lerna run test
$ lerna run build
# 观察所有包和传输的变化,流式前缀输出
$ lerna run --parallel watch
在包含该脚本的每个包中运行一个npm脚本。双破折号(--)是将虚线参数传递给脚本执行所必需的。
选项
lerna run接受所有筛选器标志。
$ lerna run --scope my-component test
--npm-client
必须是知道如何运行npm生命周期脚本的可执行文件。默认的--npm client是npm。
$ lerna run build --npm-client=yarn
也可以在lerna.json中配置:
{
"command": {
"run": {
"npmClient": "yarn"
}
}
}
--stream
立即从子进程输出流,并以原始包名称为前缀。这使得来自不同包的输出可以被交错。
$ lerna run watch --stream
--parallel
类似于--stream,但完全忽略并发性和拓扑排序,在所有匹配的包中立即运行给定的命令或脚本,并带有前缀流输出。这是长时间运行的进程(如npm run watch run over many package)的首选标志。
$ lerna run watch --parallel
注意:建议在使用--parallel标志时约束此命令的范围,因为生成几十个子进程可能会损害shell的稳定性(例如,最大文件描述符限制)。YMMV
--no-bail
# 运行命令,忽略非零(错误)退出代码
$ lerna run --no-bail test
默认情况下,如果任何执行返回非零退出代码,lerna run将退出并返回错误。通过使用 --no-bail来禁用此行为,在所有包中执行,而不考虑退出代码。
--no-prefix
当输出为流式时禁用包名前缀(--stream或--parallel)。当将结果管道传输到其他进程(如编辑器插件)时,此选项非常有用。
--profile
分析命令执行情况并生成性能配置文件,可以在基于Chromium的浏览器中使用DevTools进行分析(直接url:devtools://devtools/bundled/devtools_app.html). 配置文件显示命令执行的时间轴,其中每个执行都分配给一个打开的插槽。插槽数由--concurrency选项确定,打开的插槽数由--concurrency减去正在进行的操作数确定。最终的结果是命令的并行执行可视化。
性能概要文件输出的默认位置位于项目的根目录。
$ lerna run build --profile
注意:只有在启用了拓扑排序(即不使用--parallel和--no sort)时,Lerna才会评测。
--profile-location
可以为性能配置文件输出提供自定义位置。提供的路径将相对于当前工作目录进行解析。
$ lerna run build --profile --profile-location=logs/profile/