// 多进程 编译所有
//parallel-webpack允许您并行运行多个Webpack构建,从而将工作分散到各个处理器上,从而有助于显着加快构建速度
let argvs = (process.argv[2] || "").replace(/\s*$/g, "")
var run = require('parallel-webpack').run,
configPath = require.resolve('./webpack.get-list.js'),
options = {
watch: false,
maxRetries: 1,
stats: false, // defaults to false
maxConcurrentWorkers: 4,// use 2 workers cup个数
argv: [argvs]
};
function notify(res) {
//多打包时,如果其中一个模块出错,不知道是哪个模块
console.log('\n--------编译完成------- \n');
}
let moduleList = argvs!=""?argvs.split(','):[];
let len = moduleList.length;
if (len == 0) {
moduleList = require('./webpack.get-module').moduleList || [];
console.log('=========进入全模块编译状态...=============')
console.log('=========共有'+moduleList.length+'模块=============')
run(configPath, options, notify);
} else {
let webpack = require('webpack')
let webpackList = require('./webpack.get-list.js');
console.log('=========指定模块编译状态...==============')
console.log('=========共有'+len+'模块=============')
webpack(webpackList[0], (err, stats) => {
//这个回调一定要写,不然打包不出来
if (err || stats.hasErrors()) {//编译错误不在 err 对象内,而是需要使用 stats.hasErrors() 单独处理
const info = stats.toJson();
// console.error(info.errors);
for (let i = 0, l = info.errors.length; i < l; i++) {
// console.log(chalk.red(info.errors[i].message));
// console.error(info.errors[i].message)
console.error(info.errors[i])
}
}
// 处理完成
})
}