在项目中可能需要一套代码同时部署几套环境,每一次改动就需要同时打包N次。这时就需要能够一个命令同时打包多次,省去了很多麻烦。
这里我们需要用到 concurrently 这个 npm 包,能够实现我们要的功能。
// 首先进行安装 npm install concurrently --save // 然后在 package.json 里面的 scripts 内部修改 "scripts": { "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", "start": "npm run dev", "lint": "eslint --ext .js,.vue src", "test": "node build/build.js test", "prepub:hwt": "node build/build.js hwy_test", "prepub:dxt": "node build/build.js dxy_test", "build:hw": "node build/build.js hwy_pro", "build:dx": "node build/build.js dxy_pro", "all": "concurrently \"node build/build.js hwy_test\" \"node build/build.js dxy_test\" \"node build/build.js hwy_pro\" \"node build/build.js dxy_pro\"" },
上面的 all 就相当与同时执行了 prepub:hwt、prepub:dxt、build:hw、build:dx 这四个命令。
这是其一,还有一种方法也可以执行多个命令,就是在两个命令之间用 && 连接:
// 首先进行安装 npm install concurrently --save // 然后在 package.json 里面的 scripts 内部修改 "scripts": { "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", "start": "npm run dev", "lint": "eslint --ext .js,.vue src", "test": "node build/build.js test", "prepub:hwt": "node build/build.js hwy_test", "prepub:dxt": "node build/build.js dxy_test", "build:hw": "node build/build.js hwy_pro", "build:dx": "node build/build.js dxy_pro", "all": "node build/build.js hwy_test && node build/build.js dxy_test && node build/build.js hwy_pro && node build/build.js dxy_pro" },
两种方法都能实现一个命令执行多个脚本,不同的是 concurrently 是并联的,&& 是串联的。
在时间上,第一个方法远比第二个方法要快。