webpack性能优化

优化打包构建速度 - 开发体验和效率

  • 优化babel-loader
    • 开启缓存,es6代码没有发生改变的部分不会重复打包
    • 明确范围,使用include或exclude
{
   
    test: /\.js$/,
    use: 'babel-loader?cacheDirectory=true', // 开启缓存
    exclude: /node_modules/ // 明确范围
},

  • ignorePlugin
    避免引入无用模块
    直接不引入,代码中没有
    比如:
// 默认会引入所有语言的js代码,代码过大。
import moment from 'moment';

如何只引入中文?

plugins: [
    // 忽略moment下的/local目录
    new webpack.IgnorePlugin({
   
        resourceRegExp: /^\.\/locale$/,
        contextRegExp: /moment$/
    }),
]

然后手动引用语言包

moment.locale('zh-cn');

  • noParse
    避免重复打包
    引入,但不打包
module: {
   
    noParse: [/react\.min\.js$/, /vue\.min\.js$/]
},

  • happyPack
    • JS单线程,开启多进程打包
    • 提高构建速度(特别是多核cpu)
module: {
   
  rules: [
      {
   
          test: /\.js$/,
          // 把对.js文件的处理转交给id为babel的HappyPack实例
          use: ['happypack/loader?id=babel'],
          include: srcPath,
      },
  ],
},
plugins: [
    new happypack({
   
        id: 
  • 17
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值