在 npm scripts 中组合命令主要依赖 shell 操作符,其中 && 用于实现条件执行(前一个成功则继续),| 用于管道传输,而 & 用于后台并发运行。通过将这些操作符直接写入 package.json 的 scripts 字段,即可构建出从简单串联到复杂并发的任务流。

如何按顺序执行多个脚本
要实现按顺序执行多个脚本,只需使用 && 连接符将它们串联起来。这种方式下,如果前一个命令失败(退出码非零),后续命令将立即停止执行,非常适合需要严格依赖关系的构建流程。

npm install -D concurrently
// package.json
{
"scripts": {
"build": "node build.js && node test.js"
}
}上述配置定义了一个名为 build 的脚本。当运行 npm run build 时,系统会先执行 node build.js。只有当该命令成功返回后,才会接着执行 node test.js。这种写法利用了 Node.js 环境下的原生 shell 支持,无需额外安装工具即可完成简单的串行任务。
立即学习“Java免费学习笔记(深入)”;
你是 TypeScript 项目架构专家,专注于脚手架搭建生产就绪的 Node.js 和前端应用。生成包含现代工具链(pnpm、Vite、Next.js)、类型
如何并行执行多个脚本
若需同时启动多个独立进程,推荐使用 concurrently 包。它能确保所有子进程同时运行,并在全部完成后统一输出结果,适用于前端项目中样式编译与服务器启动等互不依赖的场景。

npm install -D concurrently
// package.json
{
"scripts": {
"start": "concurrently \"npm run dev\" \"npm run server\""
},
"dev": "webpack serve --mode development",
"server": "nodemon index.js"
}在此示例中,start 脚本调用了 concurrently 并传入两个子命令。执行 npm start 后,Webpack 开发服务器和 Node.js 后端服务将同时启动。注意引号的转义处理,以确保命令行能正确解析每个独立的参数块。这种方式比原生的 & 符号更稳定,因为它能更好地管理进程生命周期和日志输出。
如何处理并发执行中的错误状态
在使用 concurrently 进行并行执行时,默认行为是只要有一个进程失败,整个脚本就会报错退出。可以通过添加 --kill-others-on-fail 标志来优化这一体验,它会在任一子进程失败时立即终止其他正在运行的进程,避免资源浪费。
// package.json
{
"scripts": {
"start": "concurrently --kill-others-on-fail \"npm run dev\" \"npm run server\""
}
}修改后的 start 脚本加入了 --kill-others-on-fail 参数。假设 npm run dev 因端口占用而失败,concurrently 会捕获该错误,立即杀掉 npm run server 进程,并向终端返回非零退出码。开发者可通过检查终端输出的最后几行日志,快速定位是哪个子任务导致了整体失败,从而提升调试效率。

















