编程 使用 Rollup.js 快速开始构建一个前端项目

2024-11-18 19:54:44 +0800 CST views 719

使用 Rollup.js 快速开始构建一个前端项目

Rollup 是一个用于 JavaScript 项目的模块打包器。它支持 ES6 模块标准,并且通过 Tree-shaking(摇树优化)来删除未使用的代码,从而生成更小的文件,非常适合现代 JavaScript 项目。


Rollup 工作流程

Rollup 的工作流程如下:

  1. 初始化:解析 CLI 参数和配置文件,设置插件和加载器。
  2. 构建:解析入口文件,追踪依赖项,并构建模块依赖图。
  3. 打包:根据模块依赖图生成最终的输出代码。
  4. 输出:将打包后的代码写入文件系统。

核心模块

Rollup.js 的主要特性包括:

  • 输入输出管理:通过配置文件定义输入和输出文件,支持不同格式(如 ES 模块、CommonJS、UMD 等)。
  • 模块解析:支持 ES 模块、CommonJS 和 AMD 格式。
  • 代码转换:可通过插件集成 Babel 等工具,实现代码转换,确保兼容性。
  • 代码拆分:支持代码拆分为多个 chunk,实现懒加载和优化加载时间。
  • Tree Shaking:通过静态分析剔除未使用的代码。
  • 插件支持:Rollup 拥有强大的插件系统,能实现代码转换、优化、按需加载等。

快速开始

安装 Rollup

使用 npm 安装 Rollup:

npm install --global rollup

或在项目中安装:

npm install rollup --save-dev

初始化项目

创建 package.json 文件:

npm init

配置 Rollup

创建 rollup.config.js,设置输入、输出和插件:

// rollup.config.js
export default {
  input: 'src/main.js', // 入口文件
  output: {
    file: 'bundle.js',   // 输出文件
    format: 'umd',       // 输出格式:'amd', 'cjs', 'es', 'iife', 'umd'
    name: 'MyBundle',    // 格式为 'iife' 或 'umd' 时需指定全局变量名
  },
  plugins: [],           // 插件列表
};

使用插件

安装并使用 Babel 插件来转换 ES6+ 代码:

npm install rollup-plugin-babel @babel/core @babel/preset-env --save-dev

rollup.config.js 中添加:

import babel from 'rollup-plugin-babel';

export default {
  // ...其他配置
  plugins: [
    babel({
      exclude: 'node_modules/**', // 排除不需要编译的文件夹
    }),
  ],
};

运行 Rollup

在命令行中运行 Rollup:

rollup -c

使用 --watch 标志在文件变动时自动构建:

rollup -c --watch

配置选项详解

input

用于配置项目的入口文件,可以是字符串、字符串数组或映射对象。支持多入口文件,可以生成多个输出 chunks。

plugins

插件可实现解析、转换和优化操作。常见插件包括:

  • @rollup/plugin-babel:代码转换。
  • @rollup/plugin-commonjs:将 CommonJS 转为 ES 模块。
  • @rollup/plugin-json:将 JSON 文件转为 ES 模块。
  • @rollup/plugin-node-resolve:解析模块引用。
  • @rollup/plugin-typescript:转换 TypeScript 代码。
  • rollup-plugin-terser:压缩 JavaScript 代码。
  • rollup-plugin-postcss:处理 CSS 文件。
  • 更多插件支持:文件复制、热更新、自动导入模块等。

treeshake

用于优化输出代码,通过静态分析消除未使用的导出。

cache

用于加速构建,设置为 true 时,仅重新分析改变的模块。

watch

用于观察模式配置,支持排除/包含文件或文件夹。

external

用于排除外部模块,可通过模块 ID 数组或正则表达式配置。


通过 Rollup.js 和插件,可以高效地管理前端项目的模块打包和优化过程。希望这能帮助您快速上手并构建自己的项目。

复制全文 生成海报 JavaScript 前端开发 模块化

推荐文章

js函数常见的写法以及调用方法
2024-11-19 08:55:17 +0800 CST
7种Go语言生成唯一ID的实用方法
2024-11-19 05:22:50 +0800 CST
curl错误代码表
2024-11-17 09:34:46 +0800 CST
FcDesigner:低代码表单设计平台
2024-11-19 03:50:18 +0800 CST
Vue3中的响应式原理是什么?
2024-11-19 09:43:12 +0800 CST
18个实用的 JavaScript 函数
2024-11-17 18:10:35 +0800 CST
如何在 Linux 系统上安装字体
2025-02-27 09:23:03 +0800 CST
mysql关于在使用中的解决方法
2024-11-18 10:18:16 +0800 CST
Git 常用命令详解
2024-11-18 16:57:24 +0800 CST
ElasticSearch集群搭建指南
2024-11-19 02:31:21 +0800 CST
Rust 高性能 XML 读写库
2024-11-19 07:50:32 +0800 CST
基于Webman + Vue3中后台框架SaiAdmin
2024-11-19 09:47:53 +0800 CST
支付宝批量转账
2024-11-18 20:26:17 +0800 CST
thinkphp swoole websocket 结合的demo
2024-11-18 10:18:17 +0800 CST
浅谈CSRF攻击
2024-11-18 09:45:14 +0800 CST
Golang Select 的使用及基本实现
2024-11-18 13:48:21 +0800 CST
15 个你应该了解的有用 CSS 属性
2024-11-18 15:24:50 +0800 CST
程序员茄子在线接单