1.介绍
与Webpack十分类似,但更加小巧。因为它只是一款ESM打包器
安装 yarn add rollup --dev
使用:
Rollup默认会开启Tree-shaking。
2.Rollup配置文件
\
3.使用插件
插件是Rollup唯一的扩展途径
使用方法:
4.加载NPM模块
使用rollup-plugin-node-resolve插件,在代码中通过模块名称使用npm模块
5.加载CommonJS模块
默认不支持,使用rollup-plugin-commonjs插件加载
6.Rollup代码拆分
Rollup支持动态导入,不能使用iife,需要使用amd格式进行打包。
打包时需要指定output.dir,即输出路径
7.Rollup多入口打包
将input属性修改为多数组或者对象的形式实现。同样不能使用iife格式进行打包,需要使用amd格式进行打包。
注意:AMD输出格式的js文件不能直接引用到页面上,需要通过实现AMD标准的库来加载。
8. Rollup/Webpack选用原则
Rollup优势:
输出结果更加扁平
使用Tree-shaking自动移除未使用代码
打包结果和手写代码基本一致,易于阅读
Rollup缺点:
加载非ESM的第三方模块比较复杂
模块最终都被打包到一个函数中,无法实现HMR
浏览器环境中,代码拆分功能需要依赖AMD库
结论:不适用于开发应用程序,适用于开发一个框架或者类库。(大多数库或者框架使用的是Rollup)
9.Parcel(零配置的前端应用打包器)
安装:yarn add parcel-bunder --dev
支持任意文件作为打包入口(建议使用html作为打包入口)
使用:yarn parcel src/index.html
parcel会自动创建server,支持热替换,能够自动安装依赖,导入其他类型的模块,支持动态导入。
生成模式使用:yarn parcel build src/index.html
parcel构建速度比webpack快,parcel使用多进程进行构建
\
\