rollup.config.js 配置中使用 @rollup/plugin-commonjs 和 rollup-plugin-babel 插件
@rollup/plugin-commonjs
@rollup/plugin-commonjs 插件来处理 CommonJS 模块。这个插件可以将 CommonJS 模块转换为 ES6 模块,使 Rollup 能够正确解析。
使用 Babel 进行转换
如果 .min.js 文件是使用 ES6+ 语法编写的,考虑使用 Babel 将其转换为兼容的版本。你可以使用 @rollup/plugin-babel 来集成 Babel。
// rollup.config.js
import babel from 'rollup-plugin-babel';
// import { terser } from 'rollup-plugin-terser';
import ignore from 'rollup-plugin-ignore';
import commonjs from '@rollup/plugin-commonjs';
import replace from 'rollup-plugin-replace';
import aliasPlugin from '@rollup/plugin-alias';
import resolve from '@rollup/plugin-node-resolve';
// import uglify from 'rollup-plugin-uglify'
import json from '@rollup/plugin-json'; // 可以引用json文件
const env = process.env.NODE_ENV;
export default {
input: 'src/index.js', // 入口文件
output: {
file: 'lib/index.js', // 输出文件
format: 'umd', // 输出格式 (通用模块定义)
name: 'jkyTRTC', // 生成的全局变量名
sourcemap: true, // 生成 sourcemap
},
plugins: [
aliasPlugin({
entries: [{ find: '@', replacement: __dirname + '/src' }],
}),
resolve({ mainFields: ['jsnext', 'preferBuiltins', 'browser'] }),
ignore(['**/*.min.js']),
commonjs(),
babel({
exclude: 'node_modules/**', // 排除 node_modules
// presets: ['@babel/preset-env'], // 使用 Babel 预设
}),
replace({
'process.env.NODE_ENV': JSON.stringify(env),
}),
json(),
// terser(), // 压缩代码
],
};