rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码,以便在浏览器中使用或在 Node.js 中使用。
文档
Demo
rollup-starter-lib rollup-starter-app
使用
发现代码被压缩了,默认是不压缩的,看一下代码里面有没有 terser
import { terser } from 'rollup-plugin-terser';
// rollup.config.js
import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
import { terser } from 'rollup-plugin-terser';
// 插件中添加 terser
terser();
后记
对比 webpack 和 rollup
-
webpack 适⽤于⼤型复杂的前端站点构建:webpack 有强⼤的 loader 和插件⽣态,打包后的⽂件实际上就是⼀个⽴即执⾏函数,这个⽴即执⾏函数接收⼀个参数,这个参数是模块对象,键为各个模块的路径,值为模块内容。⽴即执行函数内部则处理模块之间的引⽤,执⾏模块等,这种情况更适合⽂件依赖复杂的应⽤开发.
-
rollup 适⽤于基础库的打包,如 vue、d3 等:Rollup 就是将各个模块打包进⼀个⽂件中,并且通过 Tree-shaking 来删除⽆⽤的代码,可以最⼤程度上降低代码体积,但是 rollup 没有 webpack 如此多的的如代码分割、按需加载等⾼级功能,其更聚焦于库的打包,因此更适合库的开发.
-
parcel 适⽤于简单的实验性项⽬:他可以满⾜低⻔槛的快速看到效果,但是⽣态差、报错信息不够全⾯都是他的硬 伤,除了⼀些玩具项⽬或者实验项⽬不建议使⽤