如何使汇总扩展`require`语句?

时间:2018-04-28 22:17:22

标签: babeljs rollupjs

我正试图绕过rollup

我正在使用一个生成这种格式文件的库:带有require语句的IIFE。例如

// index.js
(function() {
  const myThing = require('./thing');
})()

//thing.js
module.exports = { a: 3 };

我正在尝试将rollup与其他一些东西一起使用,但我的bundle.js最终看起来像这样:

(function () {
  var myThing = require('./thing');
})();

我需要做什么才能使bundle.js看起来像这样?

(function () {
  var myThing = { a: 3 };
})();

如果我的设置出现问题,请使用以下rollup.config.js

var babel = require('rollup-plugin-babel');

export default {
  input: 'index.js',
  output: {
    file: 'dist/bundle.js',
    format: 'es'
  },
  plugins: [
    babel({
      exclude: 'node_modules/**'
    })
  ]
};

这些是我安装的软件包:

"babel-core": "^6.26.3",
"babel-plugin-external-helpers": "^6.22.0",
"babel-preset-env": "^1.6.1",
"rollup": "^0.58.2",
"rollup-plugin-babel": "^3.0.4"

我的巴贝尔配置:

{
  "presets": [
    [
      "env",
      {
        "modules": false
      }
    ]
  ],
  "plugins": [
    "external-helpers"
  ]
}

要构建,我只是致电rollup -c

1 个答案:

答案 0 :(得分:0)

好的,我明白了。我必须使用的只是使用CommonJS插件:

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

export default {
  input: 'index.js',
  output: {
    file: 'dist/bundle.js',
    format: 'cjs'
  },
  plugins: [
    resolve(),
    commonjs(),
    babel({
      exclude: 'node_modules/**'
    })
  ]
};