如何通过单条命令同时运行package.json中的dev与test脚本?
如何用一条命令同时执行dev和test脚本?
当然可以!有几种实用的方案能帮你实现这个需求,我给你详细说说:
方案1:利用Shell命令直接并行执行(适合类Unix系统)
如果你用的是macOS、Linux或者Windows的WSL/PowerShell,可以直接在package.json里新增一个脚本,用Shell的后台执行符号&来让两个命令并行运行:
{ "scripts": { "dev": "react-scripts start", "test": "react-scripts test", "dev:test": "npm run dev & npm run test" } }
之后只需要在终端运行 npm run dev:test 就能同时启动开发服务和测试了。
注意:Windows的CMD命令行里
&是命令分隔符(串行执行),如果要在CMD里并行,得用start命令:start npm run dev & start npm run test,不过更推荐用跨平台的工具来避免系统差异。
方案2:用跨平台工具concurrently(推荐)
如果需要在所有操作系统上都稳定运行,concurrently是个非常好用的npm包,它专门用来并行执行多个命令,还能给不同进程的日志加上颜色区分,方便排查问题。
步骤如下:
- 先安装依赖到开发环境:
npm install --save-dev concurrently - 在package.json里新增一个组合脚本:
{ "scripts": { "dev": "react-scripts start", "test": "react-scripts test", "dev:test": "concurrently \"npm run dev\" \"npm run test\"" } } - 运行命令:
npm run dev:test
你还可以给concurrently加一些参数优化体验,比如给每个进程命名:
"dev:test": "concurrently --names \"DEV,TEST\" \"npm run dev\" \"npm run test\""
这样日志里会清晰显示每条输出来自哪个进程。
内容的提问来源于stack exchange,提问作者Fellow Stranger
相关产品推荐
相关产品推荐

