rollup 无法解析引入的 .min.js 中的export

rollup.config.js 配置中使用 @rollup/plugin-commonjsrollup-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(), // 压缩代码
  ],
};


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。