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

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

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

推荐文章

Rust async/await 异步运行时
2024-11-18 19:04:17 +0800 CST
阿里云免sdk发送短信代码
2025-01-01 12:22:14 +0800 CST
避免 Go 语言中的接口污染
2024-11-19 05:20:53 +0800 CST
智能视频墙
2025-02-22 11:21:29 +0800 CST
pin.gl是基于WebRTC的屏幕共享工具
2024-11-19 06:38:05 +0800 CST
手机导航效果
2024-11-19 07:53:16 +0800 CST
Python实现Zip文件的暴力破解
2024-11-19 03:48:35 +0800 CST
Vue3中如何处理跨域请求?
2024-11-19 08:43:14 +0800 CST
Vue3中如何使用计算属性?
2024-11-18 10:18:12 +0800 CST
markdowns滚动事件
2024-11-19 10:07:32 +0800 CST
PHP 8.4 中的新数组函数
2024-11-19 08:33:52 +0800 CST
Vue3中的JSX有什么不同?
2024-11-18 16:18:49 +0800 CST
Go 1.23 中的新包:unique
2024-11-18 12:32:57 +0800 CST
基于Flask实现后台权限管理系统
2024-11-19 09:53:09 +0800 CST
记录一次服务器的优化对比
2024-11-19 09:18:23 +0800 CST
Java环境中使用Elasticsearch
2024-11-18 22:46:32 +0800 CST
使用Ollama部署本地大模型
2024-11-19 10:00:55 +0800 CST
程序员茄子在线接单