jk's notes
  • concurrently

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:*\""
  },
}
Last Updated:
Contributors: jk