Javascript 如何使用rollup在包中同时包含import和require语句

Javascript 如何使用rollup在包中同时包含import和require语句,javascript,bundle,es6-modules,commonjs,rollup,Javascript,Bundle,Es6 Modules,Commonjs,Rollup,当我只使用const Example1=require('./Example1.js)语句时,包中就会包含Example1.js文件中的代码。如果我只使用import Example2 from./Example2.js',那么Example2.js中的代码也将包含在包中。但是如果我只使用这两个语句,import正在工作,require不工作 我正在使用rollup进行捆绑 我的汇总配置如下所示 import babel from 'rollup-plugin-babel' import com

当我只使用
const Example1=require('./Example1.js)
语句时,包中就会包含Example1.js文件中的代码。如果我只使用
import Example2 from./Example2.js'
,那么Example2.js中的代码也将包含在包中。但是如果我只使用这两个语句,
import
正在工作,
require
不工作

我正在使用rollup进行捆绑

我的汇总配置如下所示

import babel from 'rollup-plugin-babel'
import commonjs from 'rollup-plugin-commonjs'
import external from 'rollup-plugin-peer-deps-external'
import postcss from 'rollup-plugin-postcss'
import resolve from 'rollup-plugin-node-resolve'
import url from 'rollup-plugin-url'
import svg from 'rollup-plugin-svg'
import json from 'rollup-plugin-json';
import { terser } from 'rollup-plugin-terser'

export default {
  input: 'src/sdk/test.js',
  output: [
    {
      file: "src/sdk/sdk.js",
      format: 'cjs'
    },
    {
      file: "src/sdk/sdk.es.js",
      format: 'es'
    },
    {
      file: "src/sdk/sdk.iife.js",
      format: 'iife'
    }
  ],
  plugins: [
    resolve({
      browser: true,
    }),
    commonjs(),
    external(),
    postcss({
      modules: true
    }),
    url({
      limit: 100 * 1024,
      emitFiles: false
    }),
    svg(),
    babel({
      exclude: 'node_modules/**',
      "plugins": ["@babel/plugin-proposal-class-properties"]
    }),
    terser(),
    json()
  ]
}

默认情况下,汇总支持将“esm”模块作为条目。如果你想在项目中包含commonjs文件,你可以在plugins字段中包含'@rollup/plugin commonjs',这通常是有效的

也许下面的配置会有所帮助,我尝试了一个非常简单的例子:

commonjs({transformMixedEsModules:true})
转换混合子模块 指示插件是否启用混合模块转换。这在混合ES和CommonJS模块的场景中非常有用。如果已知应该转换require调用,则将其设置为true;如果代码包含env检测并且require应该在转换后仍然存在,则将其设置为false


好的,不,只是不要混合两个模块语法。我希望@Bergib可以,但它没有在最后一个包中包含
require
语句中的代码<带有路径的code>require语句将保持原样。只包含
import
语句代码。是第三方模块还是您编写的代码未捆绑?你没有解释它是第三方库tweenjs