Skip to content

Rollup

概述

概念

Rollup 是一个 JavaScript 模块打包工具,可以将多个 JavaScript 文件(模块)打包成一个文件,使得应用程序的加载速度更快、体积更小

主要目标是生成轻量、快速且高效的代码包,特别适用于库和框架的打包发布

Rollup 使用 JavaScript 的 ES6 版本中包含的新标准化代码模块格式,而不是以前的 commonJS 和 AMD 等特殊解决方案

ES 模块运行你自由无缝组合最喜欢的库中最有用的个别函数

shell
npm install --global rollup

特点

  • 模块化支持:专注于原生 ES 模块的打包。ES 模块允许开发者将代码拆分成多个独立的模块,有助于提高代码的可维护性和可重用性。Rollup 可以把这些模块打包成单个文件,便于在浏览器或其他环境中运行

  • Tree-shaking(摇树优化):可以自动移除代码中未使用的部分(“死代码”),从而减少最终打包文件的体积。

  • 轻量打包:输出的代码文件非常轻量且易于理解,生成的包往往比其他工具打包的文件更小。因为 Rollup 聚焦于移除冗余代码并保留必要的部分,以减少不必要的性能开销

  • 可配置性和灵活性:提供了高度可配置的插件系统,使开发者能根据项目的需求自定义打包流程

缺点

  • 缺少复杂应用的功能支持:主要是为了打包库和框架涉及,打包应用程序与 webpack 相比,缺少一些重要功能,如动态导入、开发服务器和热模块替换等功能

  • 生态系统不如 webpack 丰富:插件生态相对较少

  • 对于非 ES 模块支持有限:对 CJS 支持较弱,虽然可以通过插件处理,但与 webpack 的模块处理相比,通常需要更多配置,且在某些场景下无法兼容

  • 代码拆分功能有限:在处理复杂的动态依赖图时,能力不如 webpack

  • 配置较为复杂

  • 开发体验弱

使用

参考

https://guide.duanhl.com/advanced/rollup/#%E6%96%87%E6%A1%A3