rollup配置babel

Posted 前端精髓

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rollup配置babel相关的知识,希望对你有一定的参考价值。

rollup.config.js

import babel from "rollup-plugin-babel";
import { nodeResolve } from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';


export default {
  input: "src/main.js",
  output: {
    file: "dist/bundle.cjs.js", //输出文件的路径和名称
    format: "umd", //五种输出格式:amd/es6/iife/umd/cjs
    name: "bundleName", //当format为iife和umd时必须提供,将作为全局变量挂在window下
  },
  plugins: [
    babel({
      runtimeHelpers: true,
      exclude: "node_modules/**",
      externalHelpers: true
    }),
    nodeResolve({
      browser: true,
    }),
    commonjs()
  ],
};

.babelrc

{
  // 开启默认预设
  "presets": [
    [
      "@babel/env",
      {
        "modules": false  // 关闭 esm 转化,统一交由 rollup 处理,防止冲突
      }
    ]
  ],
  "plugins": [
    "@babel/plugin-external-helpers",
    [
      // 开启 babel 各依赖联动,由此插件负责自动导入 helper 辅助函数,从而形成沙箱 polyfill 
      "@babel/plugin-transform-runtime",  
      {
        "corejs": { "version": 3, "proposals": true },
        "useESModules": true  // 关闭 esm 转化,交由 rollup 处理,同上防止冲突
      }
    ]
  ]
}

关于babel我们需要安装

npm install --save-dev @babel/plugin-transform-runtime
npm install --save @babel/runtime
npm install --save @babel/runtime-corejs3
npm install --save-dev @babel/core
npm install --save-dev @babel/preset-env
npm install --save-dev @babel/plugin-external-helpers

关于编译我们需要安装

npm install --save-dev  @rollup/plugin-commonjs
npm install --save-dev  @rollup/plugin-node-resolve

babel-plugin-external-helpers: 把 helpers 收集到一个共享模块或共享文件。
helper 函数是 babel 在 transform 时候常用的工具函数,对编译模块时,会将用到的 helpers 放到模块顶部。如果编译多个文件,就会重复引用,导致每个模块都定义一份。

rollup提供了五种选项:

1、amd – 异步模块定义,用于像RequireJS这样的模块加载器

2、cjs – CommonJS,适用于 Node 和 Browserify/Webpack

3、es – 将软件包保存为ES模块文件

4、iife – 一个自动执行的功能,适合作为

5、umd – 通用模块定义,以amd,cjs 和 iife 为一体

以上是关于rollup配置babel的主要内容,如果未能解决你的问题,请参考以下文章

Babel / Rollup 错误转译和捆绑 ES2017

为什么说rollup比webpack更适合打包库

rollup打包工具

Vue 3.0组件库初始化

如何使用 rollup.js 将所有依赖项嵌入到一个胖目标包中?

Babel技术使用汇总