Nodejs并发执行任务插件concurrently的使用

Nodejs并发执行任务插件concurrently的使用
concurrently 是一个非常实用的 Node.js 插件,用于同时运行多个命令。它常被用于开发环境中,特别是在需要同时启动多个服务(例如前端和后端服务)时。

安装

首先,你需要全局安装 concurrently

npm install -g concurrently

或者在项目中作为开发依赖安装:

npm install --save-dev concurrently

使用方法

在你的 package.json 文件中,你可以定义一系列命令,并通过 concurrently 同时运行它们。以下是一个简单的例子:

package.json 示例

假设你有一个项目,包含一个前端服务(使用 webpack-dev-server)和一个后端服务(使用 nodemon)。你可以在 scripts 部分定义这些命令:

{
  "name": "your-project-name",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "start:client": "webpack-dev-server",
    "start:server": "nodemon server.js",
    "dev": "concurrently \"npm:start:client\" \"npm:start:server\""
  },
  "dependencies": {
    // your dependencies
  },
  "devDependencies": {
    "concurrently": "^6.2.0",
    "nodemon": "^2.0.7",
    "webpack-dev-server": "^3.11.3"
  }
}

运行命令

然后,你可以通过运行以下命令来同时启动客户端和服务端:

npm run dev

这将同时启动 webpack-dev-servernodemon,允许你在一个终端窗口中同时查看前后端服务的日志输出。

其他选项

  • 命名命令:可以为每个命令提供一个名称,以便更好地识别日志输出。例如:

    "dev": "concurrently \"npm:start:client\" \"npm:start:server\""
    

    可以改为:

    "dev": "concurrently \"client [webpack-dev-server]\" \"server [nodemon]\" npm:start:client npm:start:server"
    
  • 颜色编码concurrently 支持为每个命令使用不同的颜色,使得日志更易读。

  • 命令间隔:可以通过 -p--kill-others-on-fail 参数来指定当一个命令失败时终止所有其他命令的执行。

总结

concurrently 是一个非常方便的工具,可以让你轻松地同时运行多个命令,非常适合开发环境中的多进程管理。希望这个指南对你有所帮助!


3 回复

当然,Concurrently 是一个非常方便的 Node.js 包,用来并行运行多个命令。比如,你可以在开发时同时启动前端服务器和后端服务器。

首先,你需要全局安装或在项目中本地安装 Concurrently:

npm install concurrently --save-dev

然后,在你的 package.json 文件中定义一些脚本:

"scripts": {
  "start": "node server.js",
  "client": "webpack-dev-server",
  "dev": "concurrently \"npm run start\" \"npm run client\""
}

这里,我们定义了三个脚本:start 启动服务器,client 运行前端构建工具,而 dev 则是同时运行这两个命令。

现在,当你运行 npm run dev 时,Concurrently 就会并行启动你的前后端服务啦!是不是很酷?


concurrently 是一个非常方便的 Node.js 包,用于在同一终端中并行运行多个命令。这在开发环境中特别有用,例如同时启动前端服务器和后端服务器。

安装

首先,你需要全局安装 concurrently 或将其作为开发依赖安装在你的项目中。推荐后者:

npm install concurrently --save-dev

基本使用

假设你有两个脚本:一个用于启动前端服务(如 npm start),另一个用于启动后端服务(如 npm run backend)。你可以使用 concurrently 来同时运行这两个命令。

在你的 package.json 文件中添加如下脚本:

"scripts": {
  "start": "react-scripts start",
  "backend": "node server.js",
  "dev": "concurrently \"npm run start\" \"npm run backend\""
}

然后,你可以通过以下命令来启动两个服务:

npm run dev

更多配置选项

  • 使用 -k--kill-others 参数可以在某个命令退出时终止其他所有命令。
  • 使用 -p--prefix 参数可以为每个命令的输出前缀不同的文本。
  • 使用 -n--names 参数可以为每个命令指定名称,这样可以更清晰地识别输出。

例如:

"dev": "concurrently -k -p \"[{name}]\" -n \"Frontend,Backend\" \"npm run start\" \"npm run backend\""

示例

假设你的项目结构如下:

my-project/
├── package.json
├── frontend/
│   └── package.json
└── backend/
    └── package.json

你可以在 my-project/package.json 中定义:

"scripts": {
  "frontend:start": "cd frontend && npm start",
  "backend:start": "cd backend && npm start",
  "dev": "concurrently \"npm run frontend:start\" \"npm run backend:start\""
}

这样,当你运行 npm run dev 时,会同时启动前后端服务。

希望这些信息对你有帮助!

concurrently 是一个用于并行运行多个命令的 Node.js 软件包。首先需要全局安装或作为开发依赖安装它:

npm install concurrently --save-dev

package.json 文件中定义你的命令,例如:

"scripts": {
  "start": "node server.js",
  "client": "webpack-dev-server"
}

然后可以使用 concurrently 并发运行这些命令:

"dev": "concurrently \"npm:start\" \"npm:client\""

这样执行 npm run dev 将同时启动服务器和客户端。

回到顶部