webpack构建性能优化
来源:互联网 发布:淘宝店铺怎么免费装修 编辑:程序博客网 时间:2024/06/09 22:39
项目之前一直用webpack自带 UglifyJsPlugin 压缩,随着项目扩大,打包时间越来越长,于是着手优化缩短打包时间
方案一
替换为UglifyJsParallelPlugin插件,UglifyJsParallelPlugin支持多线程压缩,替换后打包时间缩短了3分之1
方式
1 安装 UglifyJsParallelPlugin插件
npm install --save-dev webpack-uglify-parallel
2 使用
var UglifyJsParallelPlugin = require('webpack-uglify-parallel'); new UglifyJsParallelPlugin({ workers: os.cpus().length, compress: { warnings: false }, output: { comments: false }, sourceMap: true })
方案二
利用webpack.DllPlugin 预打包,生成动态依赖库对重点内容不经常修改的库预打包生成依赖关系避免二次打包
1单独创建webpack.dll.config.js
var webpack = require('webpack'); var path = require('path'); var vendors = [ 'react', 'react-dom' ]; var plugin = [ new webpack.DllPlugin({ path: path.join(__dirname, '/dll/manifest.json'), name: '[name]', context: __dirname }), new webpack.DefinePlugin({ 'process.env.NODE_ENV': JSON.stringify('production') }), new webpack.optimize.UglifyJsPlugin({ compress: { warnings: false }, output: { comments: false } }) ]; module.exports = { devtool: '#source-map', entry: { "vendors": vendors }, output: { path: path.join(__dirname, '/dll'), filename: '[name].js', library: '[name]', libraryTarget: 'umd', umdNamedDefine: true }, plugins: plugin };
2 执行webpack -p –progress –config webpack.dll.config.js 预打包
3 在webpack.config.js中引入打包生成的manifest.json
var manifest = require('./dll/manifest.json'); plugins: [ new webpack.DllReferencePlugin({ manifest, }),]
4 在页面中引入也编译生成的依赖库 vendors.js
推荐使用 add-asset-html-webpack-plugin插件动态注入
var AddAssetHtmlPlugin = require('add-asset-html-webpack-plugin'); new AddAssetHtmlPlugin([ { filepath: xxxxx, outputPath: xxxxx, publicPath: xxxxx } ])
通过多线程压缩和预打包,打包时间大大缩短。
参考文章:http://engineering.invisionapp.com/post/optimizing-webpack/
阅读全文
0 0
- webpack构建性能优化
- webpack 前端构建性能优化策略小结
- webpack 前端构建性能优化策略小结
- webpack前段构建性能优化策略小结
- 【前端构建】WebPack实例与前端性能优化
- 【前端构建】WebPack实例与前端性能优化
- 优化Webpack构建性能的几点建议
- webpack构建优化
- webpack性能优化
- 【前端-webpack】webpack性能基础优化
- webpack实例与前端性能优化
- 前端性能优化:webpack分离 + LocalStorage缓存
- webpack性能优化——DLL
- webpack性能优化——DLL
- webpack性能优化——DLL
- webpack性能优化——DLL
- webpack性能优化——DLL
- webpack性能优化 —— CommonsChunkPlugin
- Mybatis 拦截器实现数据行权限
- HDU 1285 拓扑排序入门
- java指定延时执行任务的几种常见方法
- 怎么将导航栏始终固定在窗口顶部
- linux下安装redis
- webpack构建性能优化
- webrtc音视频开发
- Java内存分配
- DOS/DDOS攻击的iptables测试,日志查看
- 织梦dedecms模板中运行php代码和mysql语句总结
- hdu6171 双向bfs
- 1040:计算1~N之间所有的奇数之和
- 环形进度条的简单实现
- 观察者模式——猫和老鼠(什么原来这里是标题吗)