Webpack与Rollup的异同点

相同点:

  • 模块打包器:核心流程都是从入口文件开始,将模块解析成ast,递归找出依赖,最后所有依赖模块打包在一起
  • 都支持plugin
  • cmd、amd、hmr、code-split核心功能都差不多

不同点:

rollup:用来打包esm模块的工具,更适合打包library;学习成本较低,功能比较弱。

  • 原生只支持esm,默认打包出来的也是esm模块代码
  • 会使用上下文环境提供的es6特性,不会注入polyfill,运行时很轻,最终包体会更小
  • 社区插件比较多
  • 配置项更直观,容易理解,文档写的特别好

webpack:学习曲线特别陡峭,但是功能性更强,更适合打包web应用、小程序、桌面应用。

  • 原生支持esm、cjs、umd、也支持这些方案的混用,默认打包出来的是类似于cmd的模块化,也支持打包成esm,但是还是实验功能
  • 默认把所有东西都打包进来,包括一套模块化方案,兼容性更强,缺点就是运行时很重
  • 官方插件比较多

        对比

  • 原生的rollup不支持hmr、code-split等
  • webpack内置了很多兼容性很强的runtime代码。rollup轻量很多,可能要手动补充一些polyfill
  • webpack5支持lazyCompilation,rollup不支持
  • rollup的配置比较精简,webpack的配置特别多
  • 从性能来讲,webpack构建性能比rollup强,但是产物体积会比rollup大很多
  • rollup只支持插件,而webpack支持loader和plugin
  • 两者都是基于hook实现扩展,rollup的hook是声明式,webpack是命令式
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值