rollup入门
作为js程序员,掌握rollup是必要的。
有了webpack后,为什么还要用rollup, 因为webpack不专业,webpack是打包一切.
rollup只为打包js而生.
1. 能组合我们的脚本文件。
2. 移除未使用的代码(仅仅使用ES6语法中)。
3. 在浏览器中支持使用 Node modules。
4. 压缩文件代码使文件大小尽可能最小化。
rollup通过的五种打包格式:
- amd – 异步模块定义,用于像RequireJS这样的模块加载器
- cjs – CommonJS,适用于 Node 和 Browserify/Webpack
- es – 将软件包保存为ES模块文件
- iife – 一个自动执行的功能,适合作为
<script>
标签。(如果要为应用程序创建一个捆绑包,您可能想要使用它,因为它会使文件大小变小。) - umd – 通用模块定义,以amd,cjs 和 iife 为一体
一般情况下首选 umd...浏览器环境, nodejs都可以运行
rollup input.js --file output.js --format umd --name namespace
CommonJS模块的重要特性是加载时执行,即脚本代码在require
的时候,就会全部执行
CommonJS的做法是,一旦出现某个模块被"循环加载",就只输出已经执行的部分,还未执行的部分不会输出。
这导致ES6处理"循环加载"与CommonJS有本质的不同。ES6根本不会关心是否发生了"循环加载",只是生成一个指向被加载模块的引用,需要开发者自己保证,真正取值的时候能够取到值。