通过rollup打包test.js
,打包后文件中出现Symbol关键字
源文件:test.js
class A{}
export default A;
打包后文件:test.min.js
var A = function () {
"use strict";
...其他代码--
var e = r[Symbol.toPrimitive];
...其他代码--
}
rollup配置文件:rollup.config.js
import resolve from "@rollup/plugin-node-resolve";
import commonjs from "@rollup/plugin-commonjs";
import babel from "@rollup/plugin-babel";
import json from "@rollup/plugin-json";
import {terser} from "rollup-plugin-terser";
export default {
input: ["./src/test.js"],
output: {
file: "./out/test.min.js",
format: "iife",
name: "A",
},
plugins: [resolve(), commonjs(), babel(), json(), terser()],
};
期望能够不生成Symbol.toPrimitive
或者生成Symbol
的polyfill。能在不支持ES6环境正常运行
首先,Symbol 是 Es6 引入的类型,如果不加 polyfill,那么在不支持 Es6 的环境下,不能正常运行。
如果不想打包为 Es5 的版本,可以检查 babel 的相关配置。