Rollup & 的作用、使用教程、支持 Vue、以及与 Webpack / Babel 的区别

一、前置知识

没接触过前端模块化概念的同学可先参考:JS & Node 模块化解释:AMD、UMD、CommonJS、 ESM

二、什么是 Rollup ?

Rollup 工具可以将代码转成不同模块,实现一套代码多端(浏览器/Node)引入。比如通过一句命令将代码打包为:

  1. 浏览器(代码通过 Script 标签引入)
rollup main.js --file bundle.js --format iife
  1. AMD(兼容 requirejs.js 框架)
rollup main.js --file bundle.js --format amd
  1. CommonJS(Node.js 代码通过 CJS 方式引入)
rollup main.js --file bundle.js --format cjs
  1. UMD (浏览器、AMD、CJS 均支持,是目前最常见的模块选择方式)
rollup main.js --file bundle.js --format umd --name "myBundle"

后面会提到每个命令的作用,这里了解即可。

三、Rollup 的应用场景和好处

  1. 如果你的项目是以插件或库给用户引入使用,Rollup 是最佳选择,它可以将代码转成不同的模块,然后用户根据自身项目模块语法来引入你的代码。

  2. Rollup 支持 Tree-shaking ,只打包引用代码,无引用的一律甩掉。

  3. 你的项目可以肆无忌惮地使用 ESM 写法,Rollup 将会自动编译,再结合 Babel 美滋滋。

四、Rollup 与 Webpack/Vite 的区别

  1. Rollup 将 JS 代码转成不同的引入模块形式,如果要处理其它语言需要借助插件。

  2. Webpack 将 JS 代码进行打包压缩,同时拥有着 CSS/JS/HTML/Font 等其它语言插件的生态丰富圈。

  3. 组件库或插件适合用 Rollup 打包、大型项目适合用 Webpack 或 Vite 。

五、Rollup 与 Babel 的区别

  1. Rollup 可将 JS 代码变成多种模块来引入运行。

  2. Babel 可将高级 JS 语法代码转成低级版本兼容运行。

六、Rollup 使用教程

6.1 准备工作

  1. 新建项目: rollup-example

  2. 项目结构:
    在这里插入图片描述

  3. src/main.js 代码:

    const user = () => {
         
         
      return {
         
         
        name: 'Jack'
      }
    }
    export {
         
          user };
    
  4. 全局安装 Rollup:

    npm install rollup -g
    

6.2 使用命令行

6.2.1 使用 CLI 打包

rollup ./src/main.js --file lib.js --format cjs 

解释:

  1. ./src/main.js 是目标即入口文件。
  2. --file lib.js 是输出的产物文件名。
  3. --format cjs 是需要转换的模块格式,这里我们采用 CJS,表示只用于 Node.js

打包后的产物:
在这里插入图片描述

6.2.2 参数命令说明

-o === --file === output 输出产物的文件名。
-d === --dir === 输出产物的目录名,一般在开启 code spliting 代码分割技术后才用到。
-f === --format === 打包模块格式。
-w === --watch === 启动监听模式,当项目代码有变动时,自动执行打包命令。
-c === --config === rollup.config.js 指向配置文件。

其它参数命令可参考官方文档

6.3 使用配置文件

当频繁使用打包命令且参数量越来越多时,Rollup 支持配置文件的方式,例如:

// rollup.config.js
import json from '@rollup/plugin-json';
import terser from '@rollup/plugin-terser';
import resolve from '@rollup/plugin-node-resolve';
import babel from '@rollup/plugin-babel'
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cookcyq

请作者喝杯暖暖的奶茶

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值