Rollup打包工具及Parcel

786 阅读2分钟

1.介绍

与Webpack十分类似,但更加小巧。因为它只是一款ESM打包器

安装 yarn add rollup --dev

使用:

image.png

Rollup默认会开启Tree-shaking。

2.Rollup配置文件

\

image.png

3.使用插件

插件是Rollup唯一的扩展途径

使用方法:

image.png

4.加载NPM模块

使用rollup-plugin-node-resolve插件,在代码中通过模块名称使用npm模块

image.png

5.加载CommonJS模块

默认不支持,使用rollup-plugin-commonjs插件加载

image.png

6.Rollup代码拆分

Rollup支持动态导入,不能使用iife,需要使用amd格式进行打包。

image.png

打包时需要指定output.dir,即输出路径

image.png

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使用多进程进行构建

\

\