我正在开发轻量级汇总配置。由于某些原因,ES模块不会在输出中转换CommonJS。

我同时使用resolvecommonjs汇总插件。

import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
import { terser } from 'rollup-plugin-terser';


module.exports = {
  input: 'static/js/script.js',
  output: {
    file: '_site/static/js/script.js',
    format: 'iife'
  },
  plugins: [
    resolve(),
    commonjs(),
    terser(),
  ]
};


import { cube } from './components/component-1.js';
import { foo } from './components/component-2.js';
const camelCase = require('camelcase');

console.log(cube(3));
console.log(foo);
console.log(camelCase('foo-bar'));


这有效:

import camelCase from 'camelcase';


但是CommonJS不起作用:

const camelCase = require('camelcase');


我需要通过其他任何配置才能使CommonJS语法起作用吗?

最佳答案

您不能将requireimport与rollup-plugin-commonjs混合使用。如果模块包含import,则将其视为ESM,并且不更改require

关于javascript - 汇总的CommonJS语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57143705/

10-09 00:25