Webpack性能优化「六」-- 优化打包构建速度 ***

本篇讲的是 Webpack 对于优化打包构建速度,也就是对于开发体验和效率的优化。
有如下几处可以优化:

优化 babel-loader
IgnorePlugin 避免引入无用模块
noParse 避免重复打包
happyPack //多进程打包工具
ParalleUglifyPlugin //多进程打包压缩
自动刷新
热更新
DLLPlugin

1.优化 babel-loader

在babel-loader后加cacheDirectory,开启缓存,
没有改动的es6代码会启用缓存,不会重新编译

[webpack.dev.js]:

module: {
  rules: [{
      test: /\.js$/,
      loader: ['babel-loader?cacheDirectory'],
      include: srcPath,
      exclude: /node_modules/
    },
  ]
},
2.IgnorePlugin 避免引入无用模块

使用场景:
日期处理类库moment中,包含很多种语言,默认引入所有语言的JS代码,代码体积过大;只需要使用中文,那就需要配置忽略对整个类库的引入,手动按需引入中文。

当全部引入配置

[index.js]配置

import moment from 'moment' //全部引入
moment.locale('zh-cn') //设置语言为中文
当按需引入配置

① 忽略 moment 引用的所有语言包,忽略 moment 下的 /locale 目录
[webpack.prod.js]配置:

plugins: [
  // 忽略 moment 下的 /locale 目录
  new webpack.IgnorePlugin(/\.\/locale/, /moment/),
]

② 手动动态引入中文语言
[index.js]:

import moment from 'moment' // moment的引入被忽略
import 'moment/locale/zh-cn' //手动引入中文语言包

综上,IgnorePlugin 避免引入无用模块,减少了打包体积,提升了打包速度。

3.noParse 避免重复打包

像vue.min.js已经模块化处理过了,需要忽略对此类型文件的打包。

webpack.prod.js:

rules: [{
  test: /\.vue$/,
  loader: ['vue-loader'],
  include: srcPath
}, ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值