Rollup工具

Rollup简介

Rollup 是一款 ES Modules 打包器。它也可以将项目中散落的细小模块打包为整块代码,从而使得这些划分的模块可以更好地运行在浏览器环境或者 Node.js 环境。

Rollup 优势

  • 输出结果更加扁平,执行效率更高;
  • (tree-shaking)自动化移除为引用的代码
  • 打包的结果依然完全可读
  • 让打包文件体积很小、更快的包

劣势

  • 加载非 ESM 的第三方模块比较复杂;
  • 因为模块最终都被打包到全局中,所以无法实现热重载HMR.
  • 浏览器环境中,代码拆分功能必须使用Require.js这样的AMD

与Webpack的对比

  • 我们发现如果我们开发的是一个应用程序,需要大量引用第三方模块,同时还需要HMR提升开发体验,而且应用过大就必须要分包。那这些需求Rollup都无法满足。
  • 如果我们是开发一个JavaScript 框架或者库,那这些优点就特别有必要,而缺点呢几乎也都可以忽略,所以在很多像React或者Vue之类的框架中都是使用的Rollup作为模块打包器,而并非Webpack.

Webpack 大而全,Rollup 小而美。原则是:应用开发使用 Webpack,类库或者框架开发使用 Rollup。 image.png

资料

Rollup 文档