webpack02 优化第三方库的打包性能

在引入第三方的库之后使用webpack打包时,默认会将这些第三方的库重新打包,但是实际上需要重新打包的只有业务代码,这些第三方库是完全不用重新打包的,所以需要对这个过程进行优化。

1 externals

Webpack可以配置externals来将依赖的库指向全局变量,从而不再打包这个库,比如对于React:

import React from 'react';

如果你在Webpack.config.js中配置了externals

module.exports = {
  externals: {
    'react': 'window.React'
  }
  //其它配置忽略...... 
};

等于让Webpack知道,对于react这个模块就不要打包,直接指向window.React就好。不过别忘了加载react.min.js(也就是手动的在index.html中引入react),让全局中有React这个变量。

配置externals的缺陷:

  1. 手动引入react.min.js,感觉还是不是很爽;
  2. 有一些库根本没有提供生产环境的文件
  3. 存在反复依赖的库(比如有的库import了react)也会导致这个库被重新打包

2 CommonsChunkPlugin

CommonsChunkPlugin可以将公共包提取出来,还是拿react举例:

const vue = require('react')
{
  entry: {
   // bundle是我们要打包的项目文件的导出名字, app是入口js文件
   bundle: 'app'// vendor就是我们要打包的第三方库最终生成的文件名,数组里是要打包哪些第三方库, 如果不是在node——m
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值