diff --git a/lib/babel/transformation/modules/common.js b/lib/babel/transformation/modules/common.js index 4333c5294a..13c4b682a4 100644 --- a/lib/babel/transformation/modules/common.js +++ b/lib/babel/transformation/modules/common.js @@ -20,7 +20,9 @@ CommonJSFormatter.prototype.init = function () { scope.rename("module"); if (!this.noInteropRequireImport && this.hasNonDefaultExports) { - file.ast.program.body.push(util.template("exports-module-declaration", true)); + var templateName = "exports-module-declaration"; + if (this.file.isLoose("es6.modules")) templateName += "-loose"; + file.ast.program.body.push(util.template(templateName, true)); } }; diff --git a/lib/babel/transformation/templates/exports-module-declaration-loose.js b/lib/babel/transformation/templates/exports-module-declaration-loose.js new file mode 100644 index 0000000000..32b83d4a5a --- /dev/null +++ b/lib/babel/transformation/templates/exports-module-declaration-loose.js @@ -0,0 +1 @@ +exports.__esModule = true; diff --git a/test/fixtures/transformation/es6-modules-common/loose/actual.js b/test/fixtures/transformation/es6-modules-common/loose/actual.js new file mode 100644 index 0000000000..0c650f9545 --- /dev/null +++ b/test/fixtures/transformation/es6-modules-common/loose/actual.js @@ -0,0 +1 @@ +export var foo = 5; diff --git a/test/fixtures/transformation/es6-modules-common/loose/expected.js b/test/fixtures/transformation/es6-modules-common/loose/expected.js new file mode 100644 index 0000000000..dbb5abcc31 --- /dev/null +++ b/test/fixtures/transformation/es6-modules-common/loose/expected.js @@ -0,0 +1,4 @@ +"use strict"; + +var foo = exports.foo = 5; +exports.__esModule = true; diff --git a/test/fixtures/transformation/es6-modules-common/loose/options.json b/test/fixtures/transformation/es6-modules-common/loose/options.json new file mode 100644 index 0000000000..6614874cd3 --- /dev/null +++ b/test/fixtures/transformation/es6-modules-common/loose/options.json @@ -0,0 +1,3 @@ +{ + "loose": "es6.modules" +}