并行化webpack构建以提高性能
Parallelize webpack builds to improve performance?
我的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
相关文章:
- 我应该如何从xml文件构建一个javascript页面
- 如何在DOM元素上按类型构建此函数
- Sencha Touch构建-排除文件
- RubyonRails——构建交互式接口应该朝哪个方向发展
- 如何在构建node-webkit应用程序后获取外部资源
- Ext.js从json构建模型关系的问题
- 如何为生产构建angular2应用程序
- Grunt构建导致Angular应用程序在dist上崩溃
- 构建JS测试,警报窗口重复上一个Q,而不是问下一个Q
- 动态构建一个数据表与scriplets
- 如何只使用特定的表行构建简单的手风琴
- 为tweet构建chrome扩展
- 如何构建angular.js应用程序
- 如何使用Meteorjs构建实时应用程序
- jquery从2个json字符串构建一个复选框表单
- webpack开发模式和生产构建模式之间有什么区别
- js文件是否阻碍了war文件的构建
- 如何在Javascript中从select标记的一系列选项中构建二维数组
- 如何使用angularjs构建交互式滚动着陆页
- 如何在dojo应用程序构建概要文件中加载json文件