汪图南
  • RAG

    • RAG
  • 快速入门
  • 高级技巧
前端面试之道
  • 打包工具

    • Webpack
    • Rollup
  • TypeScript

    • TypeScript基础
    • TypeScript类型挑战
  • CSS预编译器

    • SASS
  • 自动化测试

    • Vue应用测试
  • Vue2.0源码分析
  • Vue3.0源码分析
  • 数据结构和算法(基础)
  • LeetCode(刷题)
  • JavaScript书籍

    • 你不知道的JavaScript(上)
    • 你不知道的JavaScript(中下)
    • JavaScript数据结构和算法
    • JavaScript设计模式与开发实践
    • 深入理解ES6
  • Git书籍

    • 精通Git
Github
  • RAG

    • RAG
  • 快速入门
  • 高级技巧
前端面试之道
  • 打包工具

    • Webpack
    • Rollup
  • TypeScript

    • TypeScript基础
    • TypeScript类型挑战
  • CSS预编译器

    • SASS
  • 自动化测试

    • Vue应用测试
  • Vue2.0源码分析
  • Vue3.0源码分析
  • 数据结构和算法(基础)
  • LeetCode(刷题)
  • JavaScript书籍

    • 你不知道的JavaScript(上)
    • 你不知道的JavaScript(中下)
    • JavaScript数据结构和算法
    • JavaScript设计模式与开发实践
    • 深入理解ES6
  • Git书籍

    • 精通Git
Github
  • Rollup基础

    • Rollup介绍
    • 核心概念
    • 基础配置
    • 配置项类型提示
    • 配置package.json
    • 常用插件
  • Rollup配置案例

    • Babel转义
    • 支持TypeScript
    • 环境区分
    • Eslint
    • 支持Jest自动化测试
    • 提交规范
    • Changelog

Babel转义

在上一章节,我们提到了@rollup/plugin-babel这个插件,它是用来把ES6代码在打包的时候转义成ES5的。

下面详细介绍Rollup中如何进行Babel转义。

首先,需要我们安装几个npm包,如下:

# 安装rollup 相关插件包
$ npm install @rollup/plugin-commonjs -D
$ npm install @rollup/plugin-node-resolve -D
$ npm install @rollup/plugin-babel -D

# 安装babel相关包
$ npm install @babel/core @babel/preset-env -D

安装完毕后,需要在rollup.config.mjs中使用插件,如下:

import commonjs from '@rollup/plugin-commonjs'
import nodeResolve from '@rollup/plugin-node-resolve'
import babel from '@rollup/plugin-babel'

export default {
  ...省略其它
  plugins: [
    nodeResolve(),
    commonjs(),
    babel({
      babelHelpers: 'bundled'
    })
  ]
}

然后,需要在根目录下新建.babelrc文件,并撰写如下内容:

{
  "presets": [
    "@babel/preset-env"
  ]
}

为了测试是否正确的处理了ES6相关的代码,我们需要改动一下入口文件src/index.js,并添加如下两个函数:

export const add = (a, b) => {
  return a + b
}

export const minus = (a, b) => {
  return a - b
}

最后,我们再次运行npm run build打包命令,查看dist目录下vue.esm.js文件打包后的代码。

var add = function add(a, b) {
  return a + b;
};
var minus = function minus(a, b) {
  return a - b;
};

export { add, minus };

可以看到,ES6相关的代码已经被正确的转义了。

最后更新时间: 2025/5/6 15:36
贡献者: wangtunan
Next
支持TypeScript