webpack dll VS external

webpack在打包后,生成的文件主要分为三种类型:
* 业务代码
* 外部依赖库
* webpack runtime

webpack中的dll和external在本质上其实是解决的同一个问题:避免将某些外部依赖库打包进我们的业务代码,而是在运行时提供这些依赖。

一方面实现了代码拆分,以及依赖的复用,

另一方面提升构建速度.

这两种方案应该是各有各的优劣,分别适用于不同的环境。

dll

  • 符合前端模块化的要求
  • webpack配置上稍微复杂一些,需要预打包所需的dll资源,并在构建时配置相应的plugin,
  • 使用dll的前提是,这些外部依赖一般不需要发生变更。所以,如果某天发生了变更,那就需要将项目重新构建,违背了dll的使用前提,必然要作出相应的牺牲。

external

  • 不太符合前端的模块化思想,所需要的外部库需要在浏览器全局环境下可访问
  • 外部库升级的话,如果兼容之前的API,不需要项目重新构建
  • webpack配置上稍微简单些,但是同样需要将所需的外部库打包为所需要的格式,并在运行态下引用

相比较而言的话,dll比external应该更加智能一些,主要体现在模块的引用和打包上。比如说如下方式去引用了react中的一个方法:

import AA from 'react/lib/createClass'

如果采用dll的方式,是不会造成重复打包的,他会将引用直接指向dll。但是如果使用external的话,则会react中的部分代码打包进来。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值