1. 简介
对于将rollup描述为一个打包工具
,我觉得并不是很精准,稍有些笼统,未能完全展示它的功能。
我更倾向于将它定义为:
-
以模块化的方式加载你的 js 文件(如果使用插件,也可以支持其他静态资源文件,如image,json等)。
-
通过一系列插件:
解析(resolve)
、转化(transform)
你的js代码。 -
预设一些优化选项,例如
去屑(tree shaking)
对你的代码进行优化。 -
最终
生成(generate)
bundle或者chunks文件。
如果一开始不了解没有关系,相信通过这个专栏的学习,您会有一些收获。
2. Rollup 与 X 的对比
Rollup is a module bundler for JavaScript which compiles small pieces of code into something larger and more complex, such as a library or application.
Rollup是一个关于 JavaScript 模块化打包的工具,可以将多个小的 JS 代码片段文件构建为大的、综合的 JS 集合,例如构建一个lib库(如lodash)或者一个应用
——【来自Introduction | Rollup】
webpack
顾名思义,web的pack打包工具,其设计初衷就是为了构建web前端项目,不仅仅是为了构建 JS 代码,还包括一些静态资源文件,例如sass、png等。
vite
通过最新的官网可以看到,vite设计的初衷,也是为了构建web前端项目,不仅仅是构建js代码。
rollup
- rollup设计的初衷是为了支持模块化开发和构建 JavaScript 代码。
- 同时通过一些社区插件,提供了更强大的功能,例如:解决了commonjs和esm之间语法不兼容的问题【@rollup/plugin-commonjs】。
- 利用esm新特性,提供了默认支持的 tree shaking 优化。
- 支持cjs,esm,umd等不同场景下的格式化输出。