Skip to content
This repository was archived by the owner on Aug 4, 2021. It is now read-only.
This repository was archived by the owner on Aug 4, 2021. It is now read-only.

Support CommonJS modules transpiled by Babel #10

@Victorystick

Description

@Victorystick

The CommonJS plugin doesn't handle ES6 transpile-style exports very well. I present two examples why support must be improved:

Because this isn't very nice

// source
export default function () { return 1337; }
// after babel
"use strict";

exports.__esModule = true;

exports["default"] = function () {
  return 1337;
};

module.exports = exports["default"];
// after rollup-plugin-commonjs
var leet = (function (module) {
  var exports = module.exports;
  "use strict";

  exports.__esModule = true;

  exports["default"] = function () {
    return 1337;
  };

  module.exports = exports["default"];
  return module.exports;
})({exports:{}});

var __esModule = leet.__esModule;

export { __esModule };export default leet;

That's quite a bit of bloat.

Worse: code like this breaks

// `babel-runtime/core-js/get-iterator.js` source
module.exports = { "default": require("core-js/library/fn/get-iterator"), __esModule: true };

We do not give exports['default'] special treatment.

// after rollup-plugin-commonjs
import require$$0 from 'core-js/library/fn/get-iterator';

var getIterator = (function (module) {
var exports = module.exports;
module.exports = { "default": require$$0, __esModule: true };
return module.exports; // an object is exported, not a function
})({exports:{}});

export default getIterator;

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions