运行 windows 上的并行 npm 脚本
running parallel npm scripts on windows
我的 package.json 中有一个 npm 并行脚本,它适用于 mac 但不适用于 windows:
"myScript": "nodemon ./server.js & cross-env NODE_ENV=development webpack-dev-server"
当它被分成两个脚本分别运行时,它在mac和windows上都可以正常工作:
"myScript1": "cross-env NODE_ENV=development webpack-dev-server",
"myScript2": "nodemon ./server.js",
我想保留并行脚本,这样我就不必分别 运行 了。如何在 windows 上进行这项工作?
我有一个解决方法,使用模块 concurrently。所以你的脚本部分看起来像这样:
scripts: {
"myScript": "concurrently \"npm run myScript1\" \"npm run myScript2\"",
"myScript1": "cross-env NODE_ENV=development webpack-dev-server",
"myScript2": "nodemon ./server.js",
}
我推荐使用 npm-run-all
我认为语法更简洁:
scripts: {
"myScript": "run-p myScript1 myScript2",
"myScript1": "cross-env NODE_ENV=development webpack-dev-server",
"myScript2": "nodemon ./server.js",
}
这个 npm-run-all 软件包提供了 3 个 CLI 命令。
- npm-run-all
- run-s
- run-p
主要命令是npm-run-all。我们可以使用 npm-run-all 命令制定复杂的计划。
run-s 和 run-p 都是 shorthand 命令。
run-s 用于顺序,run-p 用于并行。我们可以用这些命令制定简单的计划。
我的 package.json 中有一个 npm 并行脚本,它适用于 mac 但不适用于 windows:
"myScript": "nodemon ./server.js & cross-env NODE_ENV=development webpack-dev-server"
当它被分成两个脚本分别运行时,它在mac和windows上都可以正常工作:
"myScript1": "cross-env NODE_ENV=development webpack-dev-server",
"myScript2": "nodemon ./server.js",
我想保留并行脚本,这样我就不必分别 运行 了。如何在 windows 上进行这项工作?
我有一个解决方法,使用模块 concurrently。所以你的脚本部分看起来像这样:
scripts: {
"myScript": "concurrently \"npm run myScript1\" \"npm run myScript2\"",
"myScript1": "cross-env NODE_ENV=development webpack-dev-server",
"myScript2": "nodemon ./server.js",
}
我推荐使用 npm-run-all 我认为语法更简洁:
scripts: {
"myScript": "run-p myScript1 myScript2",
"myScript1": "cross-env NODE_ENV=development webpack-dev-server",
"myScript2": "nodemon ./server.js",
}
这个 npm-run-all 软件包提供了 3 个 CLI 命令。
- npm-run-all
- run-s
- run-p
主要命令是npm-run-all。我们可以使用 npm-run-all 命令制定复杂的计划。
run-s 和 run-p 都是 shorthand 命令。
run-s 用于顺序,run-p 用于并行。我们可以用这些命令制定简单的计划。