From 6b76f26ed899ae703b64ea5cd543641cf7b67a3d Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 6 Apr 2015 06:14:09 -0700 Subject: [PATCH] use module id if available for umd global name - fixes #1166 --- src/babel/transformation/modules/umd.js | 7 ++++++- .../es6.modules-umd/module-id/actual.js | 1 + .../es6.modules-umd/module-id/expected.js | 17 +++++++++++++++++ .../es6.modules-umd/module-id/options.json | 3 +++ 4 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 test/core/fixtures/transformation/es6.modules-umd/module-id/actual.js create mode 100644 test/core/fixtures/transformation/es6.modules-umd/module-id/expected.js create mode 100644 test/core/fixtures/transformation/es6.modules-umd/module-id/options.json diff --git a/src/babel/transformation/modules/umd.js b/src/babel/transformation/modules/umd.js index f143cfcaa7..489dc20bdf 100644 --- a/src/babel/transformation/modules/umd.js +++ b/src/babel/transformation/modules/umd.js @@ -60,12 +60,17 @@ export default class UMDFormatter extends AMDFormatter { var moduleName = this.getModuleName(); if (moduleName) defineArgs.unshift(t.literal(moduleName)); + // + var globalArg = this.file.opts.basename; + if (moduleName) globalArg = moduleName; + globalArg = t.identifier(t.toIdentifier(globalArg)); + var runner = util.template("umd-runner-body", { AMD_ARGUMENTS: defineArgs, COMMON_TEST: commonTests, COMMON_ARGUMENTS: commonArgs, BROWSER_ARGUMENTS: browserArgs, - GLOBAL_ARG: t.identifier(t.toIdentifier(this.file.opts.basename)) + GLOBAL_ARG: globalArg }); // diff --git a/test/core/fixtures/transformation/es6.modules-umd/module-id/actual.js b/test/core/fixtures/transformation/es6.modules-umd/module-id/actual.js new file mode 100644 index 0000000000..f3b473756e --- /dev/null +++ b/test/core/fixtures/transformation/es6.modules-umd/module-id/actual.js @@ -0,0 +1 @@ +foobar(); diff --git a/test/core/fixtures/transformation/es6.modules-umd/module-id/expected.js b/test/core/fixtures/transformation/es6.modules-umd/module-id/expected.js new file mode 100644 index 0000000000..8ccda53fd5 --- /dev/null +++ b/test/core/fixtures/transformation/es6.modules-umd/module-id/expected.js @@ -0,0 +1,17 @@ +(function (global, factory) { + if (typeof define === "function" && define.amd) { + define("MyLib", ["exports"], factory); + } else if (typeof exports !== "undefined") { + factory(exports); + } else { + var mod = { + exports: {} + }; + factory(mod.exports); + global.MyLib = mod.exports; + } +})(this, function (exports) { + "use strict"; + + foobar(); +}); \ No newline at end of file diff --git a/test/core/fixtures/transformation/es6.modules-umd/module-id/options.json b/test/core/fixtures/transformation/es6.modules-umd/module-id/options.json new file mode 100644 index 0000000000..921ceb9660 --- /dev/null +++ b/test/core/fixtures/transformation/es6.modules-umd/module-id/options.json @@ -0,0 +1,3 @@ +{ + "moduleId": "MyLib" +}