【问题标题】:require is not defined using rollup要求未使用汇总定义
【发布时间】:2019-01-26 01:37:13
【问题描述】:

我有以下rollup.config.js

import commonjs from 'rollup-plugin-commonjs';
import nodeResolve from 'rollup-plugin-node-resolve';

export default {
  input: 'input.js',
  output: {
    file: 'output.js',
    format: 'iife'
  },
  plugins: [
    nodeResolve(
      {
        jsnext: true,
        main: true
      }
    ),
    commonjs({ include: 'hello.js' })
  ]
}

我有以下input.js 其中requires hello.js

var hello = require('./hello.js');

console.log(hello);

hello.js 很简单:

module.exports = 'hello';

我希望 output.js 不包含 require 语法,并将其替换为字符串 'hello'

我仍然看到var hello = require('./hello.js');这一行

如何用汇总插件替换这一行? (我认为这就是 commonjs 插件的用途)。

提前感谢您的帮助!

【问题讨论】:

    标签: configuration commonjs rollupjs


    【解决方案1】:

    解决了。

    问题出在我的input.js 文件上。

    插件不支持require,但插件支持module.exports

    input.js 更改为:

    import x from './hello.js';
    
    console.log(x);
    

    工作。

    【讨论】:

    • 更具体地说,问题似乎是 CommonJS 插件有include: 'hello.js'——换句话说,它不包括input.js。插件确实翻译requiremodule.exports,但仅适用于它所应用的文件;)
    • 遗憾的是,这个答案没有回答如何让 require 被汇总正确处理的问题。 @RichHarris 有没有机会就如何在输出中删除 require 提出建议?
    猜你喜欢
    • 2018-02-18
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 2022-08-08
    • 2019-04-15
    相关资源
    最近更新 更多