并行化webpack构建以提高性能

Parallelize webpack builds to improve performance?

本文关键字:高性能 构建 webpack 并行化      更新时间:2023-09-26

我的webpack生产构建需要70秒以上的时间,但只使用一个CPU核心。

有可能通过在多个核心上并行运行webpack构建来加快速度吗?(例如make -j4?)

看看Webpack Github 最近的一期

基本上,你可以为每个条目生成一个新的工作者,或者最多为你的cpu数量的集合,比如:

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 ...
  };
});

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

并行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'
    }
}];

并行webpack将并行运行两个指定的生成。

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

parallel-webpack -p=2

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

parallel-webpack --no-stats