concurrently
link: https://www.npmjs.com/package/concurrently
用于在 npm CLI 中同时运行多个命令. 使用场景举例:
- 一个进程运行 tsc 转码 js
- 一个进程运行 nodemon 来执行 js 程序
可以定义脚本:
{
"scripts": {
"dev": "concurrently \"tsc -w\" \"nodemon index.js\""
}
}
为什么使用
并行任务可以使用 &
连接两个命令, 但是存在问题, 它会使用两个上下文, 其中一个命令失败后, 不会退出另一个命令, 并且也不会有不同的错误提示. 另一个方式是使用两个终端来运行命令. 比较麻烦.
所以使用 concurrently
, 可以在一个上下文中使用.
特点
- 跨平台.
- 可以使用前缀和通配符简单控制.
- 可以带有
--kill-others
选项, 当一个命令失败后, 会终止其他命令. - 使用 spawn-command 来生成命令.
安装
支持全局安装和局部安装
# 全局安装
# npm
npm i -g concurrently
# yarn
yarn global add concurrently
# pnpm
pnpm add -g concurrently
# Bun
bun add -g concurrently
# 局部安装
# npm
npm i -D concurrently
# yarn
yarn add -D concurrently
# pnpm
pnpm add -D concurrently
# bun
bun add -D concurrently
一般都是在开发阶段使用该命令
用法
注意
concurrently
含有简化的命令conc
命令虽然是使用 node 编写, 但是可以支持任意命令 (实际上是 命令行 的生成程序)
推荐将子命令用 双引号 括起来. 例如:
concurrently "命令 参数" "命令 参数"
给出一个示例用法
{
"scripts": {
"watch:ts": "tsc -w",
"watch:js": "nodemon index.js",
"dev": "concurrently \"npm:watch:*\""
},
}