webpack打包vue反编译_前端性能优化——webpack篇

本文关注webpack的性能优化,包括通过给loader减轻负担、使用Happypack实现多进程打包以及利用DllPlugin提取公用库来提高构建速度。详细介绍了如何配置和应用这些优化技巧。
摘要由CSDN通过智能技术生成

相信每个用过webpack的同学都对“打包”和“压缩”这样的事情烂熟于心,这些老生常谈的特性,我更推荐大家去阅读文档。本文将把注意力放在webpack的性能优化上。

一、提高构建速度

1. 给 loader 减轻负担

用 include 或 exclude 来帮我们避免不必要的转译

module: {
     
  rules: [
    {
      test: /\.js$/,
      exclude: /(node_modules|bower_components)/,
      use: {
        loader: 'babel-loader',
        options: {
          presets: ['@babel/preset-env']
        }
      }
    }
  ]
}

开启缓存将转译结果缓存至文件系统

loader: 'babel-loader?cacheDirectory=true'

2. 使用 Happypack 将 loader 由单进程转为多进程

webpack 的缺点是单线程的,我们可以使用 Happypack 把任务分解给多个子进程去并发执行,大大提升打包效率。配置的方法是把 loader 的配置转移到 HappyPack 中去。

const HappyPack = require('happypack')
// 手动创建进程池
const happyThreadPool =  HappyPack.ThreadPool({ size: os.cpus().length })

module.exports = {
  module: {
    rules: [
      ...
      {
        test: /\.js$/,
        // 问号后面的查询参数指定了处理这类文件的HappyPack实例的名字
        loader: 'happypack/loader?id=happyBabel',
        ...
      },
    ],
  },
  plugins: [
    ...
    new HappyPack({
      // 这个HappyPack的“名字”就叫做happyBabel,和楼上的查询参数遥相呼应
      id: 'happyBabel',
      // 指定进程池
      threadPool: happyThreadPool,
      loaders: ['babel-loader?cacheDirectory']
    })
  ],
}

3. DllPlugin 提取公用库

开发过程中,我们经常需要引入大量第三方库,这些库并不需要随

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值