# 快速上手
rollup
仅仅是一款 ESM
打包工具,并没有其他额外的功能。例如 webpack
有对开发者友好的 HMR
热更新功能,rollup
并不支持类似 HMR
这种高级特性。rollup
的诞生并不是为了与 webpack
全面竞争,rollup
的初衷是提供一个充分利用 ESM
各项特性的高效打包器,通过充分利用 ESM
的各种特性,构建出结构比较扁平且性能比较出众的类库。
首先安装 rollup
依赖:
yarn add rollup --dev
rollup
打包需要指定入口文件路径以及输出代码格式,下面是可选的代码格式。
amd cjs system esm iife umd
这里选择最适合浏览器的 iife
(立即执行函数)格式,默认是 esm
格式。
yarn rollup ./src/index.js --format iife
还可以指定打包文件的输出路径。
yarn rollup ./src/index.js --format iife --file dist/bundle.js
执行打包命令后输出的文件:
// dist/bundle.js
(function () {
'use strict';
const log = msg => {
console.log('---------- INFO ----------');
console.log(msg);
console.log('--------------------------');
};
var messages = {
hi: 'Hey Guys, I am jwchan~'
};
// 导入模块成员
// 使用模块成员
const msg = messages.hi;
log(msg);
}());
可以看到打包后的 bundle
代码很简洁,相比于 webpack
打包文件大量的引导代码以及模块函数,这里的代码几乎没有多余的代码。rollup
就是把我们的代码根据依赖的先后顺序,先后地拼接到了一起。仔细观察打包结果可以发现,rollup
打包结果只会保留需要用到的部分,对于未引用的部分,都没有输出。这是因为 rollup
会自动开启 tree-shaking
来优化打包结果,tree-shaking
这个概念最早也是在 rollup
这个工具提出来的。
02-配置文件 →