并行化webpack构建以提高性能?

时间:2015-11-10 23:10:44

标签: javascript webpack

我的webpack生产版本耗时超过70秒,但只使用一个CPU内核。

是否可以通过并行运行多个核心的webpack构建来加快速度? (比如,前,make -j4?)

2 个答案:

答案 0 :(得分:1)

查看A recent issue on Webpack Github

基本上,你可以为每个条目或最多为cpus的集合产生一个新工人,如下所示:

var _ = require('lodash');
var os = require('os');

var entries = [...]; // your entries go here

module.exports = _.chunk(entries, os.cpus().length).map(function(entry) {
  return {
    entry: entry,
    ... rest of your config ...
  };
});

老实说,我发现这很难开始工作,但我有一个时髦的设置。谁没有?

答案 1 :(得分:0)

parallel-webpack允许您运行多个Webpack构建 并行处理,将工作分散到各个处理器上,从而有助于 大大加快了构建速度。

给出如下webpack.config.js:

var path = require('path');
module.exports = [{
    entry: './pageA.js',
    output: {
        path: path.resolve(__dirname, './dist'),
        filename: 'pageA.bundle.js'
    }
}, {
    entry: './pageB.js',
    output: {
        path: path.resolve(__dirname, './dist'),
        filename: 'pageB.bundle.js'
    }
}];

parallel-webpack将并行运行两个指定的版本。

您可以指定parallel(或简称p)选项,以告诉parallel-webpack可以使用多少个CPU。例如

parallel-webpack -p=2

除此之外,您还可以确保关闭统计信息。生成统计数据是繁重的工作。 您可以使用以下方法将其关闭:-

parallel-webpack --no-stats