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

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

使用 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 前端开发 模块化

推荐文章

Vue3中如何处理SEO优化?
2024-11-17 08:01:47 +0800 CST
PHP 8.4 中的新数组函数
2024-11-19 08:33:52 +0800 CST
软件定制开发流程
2024-11-19 05:52:28 +0800 CST
CSS 奇技淫巧
2024-11-19 08:34:21 +0800 CST
Vue3中如何处理权限控制?
2024-11-18 05:36:30 +0800 CST
16.6k+ 开源精准 IP 地址库
2024-11-17 23:14:40 +0800 CST
2025年,小程序开发到底多少钱?
2025-01-20 10:59:05 +0800 CST
PHP 如何输出带微秒的时间
2024-11-18 01:58:41 +0800 CST
HTML和CSS创建的弹性菜单
2024-11-19 10:09:04 +0800 CST
Vue3中的Store模式有哪些改进?
2024-11-18 11:47:53 +0800 CST
Golang在整洁架构中优雅使用事务
2024-11-18 19:26:04 +0800 CST
动态渐变背景
2024-11-19 01:49:50 +0800 CST
Vue3中的Scoped Slots有什么改变?
2024-11-17 13:50:01 +0800 CST
批量导入scv数据库
2024-11-17 05:07:51 +0800 CST
Vue3 中提供了哪些新的指令
2024-11-19 01:48:20 +0800 CST
ElasticSearch 结构
2024-11-18 10:05:24 +0800 CST
【SQL注入】关于GORM的SQL注入问题
2024-11-19 06:54:57 +0800 CST
赚点点任务系统
2024-11-19 02:17:29 +0800 CST
JavaScript设计模式:组合模式
2024-11-18 11:14:46 +0800 CST
Grid布局的简洁性和高效性
2024-11-18 03:48:02 +0800 CST
如何在 Vue 3 中使用 Vuex 4?
2024-11-17 04:57:52 +0800 CST
程序员茄子在线接单