【问题标题】:How to include both import and require statements in the bundle using rollup如何使用汇总在包中同时包含 import 和 require 语句
【发布时间】:2020-10-27 10:51:51
【问题描述】:

当我只使用 const Example1 = require('./example1.js) 语句时,example1.js 文件中的代码将包含在包中。如果我只使用import Example2 from './example2.js',那么 example2.js 中的代码也将包含在包中。但如果我同时使用这两个语句,则只有 import 有效,require 无效。

我正在使用汇总进行捆绑。

我的汇总配置如下所示

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()
  ]
}

【问题讨论】:

  • 好吧,不,只是不要混合两种模块语法。
  • 我希望我能@Bergi

标签: javascript bundle es6-modules commonjs rollup


【解决方案1】:

默认情况下,rollup 支持“esm”模块作为入口。如果您想在项目中包含 commonjs 文件,您可以在 plugins 字段中包含“@rollup/plugin-commonjs”,它通常可以工作。

也许以下配置会有所帮助,我尝试了非常简单的示例:

commonjs({transformMixedEsModules:true})

transformMixedEsModules 指示插件是否启用混合模块转换。这在混合 ES 和 CommonJS 模块的场景中很有用。如果知道 require 调用应该被转换,则设置为 true;如果代码包含 env 检测并且 require 应该在转换中存活,则设置为 false。

https://github.com/rollup/plugins/tree/master/packages/commonjs

【讨论】:

  • 但它不包含来自最终包中的require 语句的代码。 require 带有路径的语句将保持原样。仅包含import 语句代码。
  • 是不是您编写的第三方模块或代码没有被捆绑?你没有解释
  • 它是一个第三方库 tweenjs
猜你喜欢
  • 2021-04-09
  • 2018-10-09
  • 2020-04-12
  • 2016-12-02
  • 1970-01-01
  • 2022-01-10
  • 1970-01-01
  • 2019-06-01
  • 2019-05-17
相关资源
最近更新 更多