Skip to content

Using code from CJS module in ES6 module will try to access non-existing default property #2634

Closed
@Deraen

Description

@Deraen

Found a problem with React-leaflet (which is written in ES6) which uses prop-types (CommonJS). The code converted from ES6 module, tries to access default property in the converted CommonJS module, which will fail, as CommonJS module doesn't export default property:

❯ cat default-problem.js  
import Foo from './foo';

Foo.oneOfType();

❯ cat foo.js              
module.exports = {
  oneOfType: function() {
    return true;
  }
};

❯ java -jar target/closure-compiler-1.0-SNAPSHOT.jar --js foo.js default-problem.js  --process_common_js_modules --module_resolution NODE

var module$foo={oneOfType:function(){return!0}};
var module$default_problem={};
module$foo.default.oneOfType();
//          ^
//          Problem, should bee just module$foo.oneOfType

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