diff --git a/src/finalisers/cjs.js b/src/finalisers/cjs.js index 5b4145a..d147e6c 100644 --- a/src/finalisers/cjs.js +++ b/src/finalisers/cjs.js @@ -1,4 +1,5 @@ import getExportBlock from './shared/getExportBlock.js'; +import esModuleExport from './shared/esModuleExport.js'; export default function cjs ( bundle, magicString, { exportMode }, options ) { let intro = options.useStrict === false ? `` : `'use strict';\n\n`; @@ -35,7 +36,7 @@ export default function cjs ( bundle, magicString, { exportMode }, options ) { if ( exportBlock ) magicString.append( '\n\n' + exportBlock ); if (exportMode === 'named') { - magicString.append('\n\nexports.__esModule = true;\n\n'); + magicString.append(esModuleExport); } return magicString; diff --git a/src/finalisers/shared/esModuleExport.js b/src/finalisers/shared/esModuleExport.js new file mode 100644 index 0000000..058aa09 --- /dev/null +++ b/src/finalisers/shared/esModuleExport.js @@ -0,0 +1,4 @@ +export default '\n\n' + + 'Object.defineProperty(exports, "__esModule", {\n' + + ' value: true\n' + + '});\n\n'; diff --git a/src/finalisers/umd.js b/src/finalisers/umd.js index 4db72da..7e00e8e 100644 --- a/src/finalisers/umd.js +++ b/src/finalisers/umd.js @@ -3,6 +3,7 @@ import { getName, quoteId, req } from '../utils/map-helpers.js'; import getInteropBlock from './shared/getInteropBlock.js'; import getExportBlock from './shared/getExportBlock.js'; import getGlobalNameMaker from './shared/getGlobalNameMaker.js'; +import esModuleExport from './shared/esModuleExport.js'; function setupNamespace ( name ) { const parts = name.split( '.' ); @@ -70,7 +71,7 @@ export default function umd ( bundle, magicString, { exportMode, indentString }, if ( exportBlock ) magicString.append( '\n\n' + exportBlock ); if (exportMode === 'named') { - magicString.append('\n\nexports.__esModule = true;\n\n'); + magicString.append(esModuleExport); } return magicString diff --git a/test/form/assignment-to-exports-class-declaration/_expected/cjs.js b/test/form/assignment-to-exports-class-declaration/_expected/cjs.js index 09efe46..21765bb 100644 --- a/test/form/assignment-to-exports-class-declaration/_expected/cjs.js +++ b/test/form/assignment-to-exports-class-declaration/_expected/cjs.js @@ -3,4 +3,6 @@ exports.Foo = class Foo {} exports.Foo = lol( exports.Foo ); -exports.__esModule = true; +Object.defineProperty(exports, "__esModule", { + value: true +}); diff --git a/test/form/assignment-to-exports-class-declaration/_expected/umd.js b/test/form/assignment-to-exports-class-declaration/_expected/umd.js index 2432b64..c2d9d5f 100644 --- a/test/form/assignment-to-exports-class-declaration/_expected/umd.js +++ b/test/form/assignment-to-exports-class-declaration/_expected/umd.js @@ -7,6 +7,8 @@ exports.Foo = class Foo {} exports.Foo = lol( exports.Foo ); - exports.__esModule = true; + Object.defineProperty(exports, "__esModule", { + value: true + }); })); diff --git a/test/form/computed-properties/_expected/cjs.js b/test/form/computed-properties/_expected/cjs.js index 8220c15..5f5f759 100644 --- a/test/form/computed-properties/_expected/cjs.js +++ b/test/form/computed-properties/_expected/cjs.js @@ -16,4 +16,6 @@ class X { exports.x = x; exports.X = X; -exports.__esModule = true; +Object.defineProperty(exports, "__esModule", { + value: true +}); diff --git a/test/form/computed-properties/_expected/umd.js b/test/form/computed-properties/_expected/umd.js index 3c68104..47c13dd 100644 --- a/test/form/computed-properties/_expected/umd.js +++ b/test/form/computed-properties/_expected/umd.js @@ -20,6 +20,8 @@ exports.x = x; exports.X = X; - exports.__esModule = true; + Object.defineProperty(exports, "__esModule", { + value: true + }); })); diff --git a/test/form/dedupes-external-imports/_expected/cjs.js b/test/form/dedupes-external-imports/_expected/cjs.js index c12daee..7c47196 100644 --- a/test/form/dedupes-external-imports/_expected/cjs.js +++ b/test/form/dedupes-external-imports/_expected/cjs.js @@ -31,4 +31,6 @@ exports.foo = foo; exports.bar = bar; exports.baz = baz; -exports.__esModule = true; +Object.defineProperty(exports, "__esModule", { + value: true +}); diff --git a/test/form/dedupes-external-imports/_expected/umd.js b/test/form/dedupes-external-imports/_expected/umd.js index bcd5d74..86d2d54 100644 --- a/test/form/dedupes-external-imports/_expected/umd.js +++ b/test/form/dedupes-external-imports/_expected/umd.js @@ -33,6 +33,8 @@ exports.bar = bar; exports.baz = baz; - exports.__esModule = true; + Object.defineProperty(exports, "__esModule", { + value: true + }); })); diff --git a/test/form/export-all-from-internal/_expected/cjs.js b/test/form/export-all-from-internal/_expected/cjs.js index 207acbd..e2755a7 100644 --- a/test/form/export-all-from-internal/_expected/cjs.js +++ b/test/form/export-all-from-internal/_expected/cjs.js @@ -6,4 +6,6 @@ const b = 2; exports.a = a; exports.b = b; -exports.__esModule = true; +Object.defineProperty(exports, "__esModule", { + value: true +}); diff --git a/test/form/export-all-from-internal/_expected/umd.js b/test/form/export-all-from-internal/_expected/umd.js index ae889e3..802d77e 100644 --- a/test/form/export-all-from-internal/_expected/umd.js +++ b/test/form/export-all-from-internal/_expected/umd.js @@ -10,6 +10,8 @@ exports.a = a; exports.b = b; - exports.__esModule = true; + Object.defineProperty(exports, "__esModule", { + value: true + }); })); diff --git a/test/form/export-default-import/_expected/cjs.js b/test/form/export-default-import/_expected/cjs.js index 28e34b0..313caa2 100644 --- a/test/form/export-default-import/_expected/cjs.js +++ b/test/form/export-default-import/_expected/cjs.js @@ -8,4 +8,6 @@ var x = _interopDefault(require('x')); exports.x = x; -exports.__esModule = true; +Object.defineProperty(exports, "__esModule", { + value: true +}); diff --git a/test/form/export-default-import/_expected/umd.js b/test/form/export-default-import/_expected/umd.js index 39040e6..2d1f6d0 100644 --- a/test/form/export-default-import/_expected/umd.js +++ b/test/form/export-default-import/_expected/umd.js @@ -10,6 +10,8 @@ exports.x = x; - exports.__esModule = true; + Object.defineProperty(exports, "__esModule", { + value: true + }); })); diff --git a/test/form/exports-at-end-if-possible/_expected/cjs.js b/test/form/exports-at-end-if-possible/_expected/cjs.js index f966613..0d6ed44 100644 --- a/test/form/exports-at-end-if-possible/_expected/cjs.js +++ b/test/form/exports-at-end-if-possible/_expected/cjs.js @@ -8,4 +8,6 @@ console.log( FOO ); exports.FOO = FOO; -exports.__esModule = true; +Object.defineProperty(exports, "__esModule", { + value: true +}); diff --git a/test/form/exports-at-end-if-possible/_expected/umd.js b/test/form/exports-at-end-if-possible/_expected/umd.js index a2c13f8..bd3dc71 100644 --- a/test/form/exports-at-end-if-possible/_expected/umd.js +++ b/test/form/exports-at-end-if-possible/_expected/umd.js @@ -12,6 +12,8 @@ exports.FOO = FOO; - exports.__esModule = true; + Object.defineProperty(exports, "__esModule", { + value: true + }); })); diff --git a/test/form/multiple-exports/_expected/cjs.js b/test/form/multiple-exports/_expected/cjs.js index 9d7081c..8a0f713 100644 --- a/test/form/multiple-exports/_expected/cjs.js +++ b/test/form/multiple-exports/_expected/cjs.js @@ -6,4 +6,6 @@ var bar = 2; exports.foo = foo; exports.bar = bar; -exports.__esModule = true; +Object.defineProperty(exports, "__esModule", { + value: true +}); diff --git a/test/form/multiple-exports/_expected/umd.js b/test/form/multiple-exports/_expected/umd.js index 9d9b112f7..7fd1b6b 100644 --- a/test/form/multiple-exports/_expected/umd.js +++ b/test/form/multiple-exports/_expected/umd.js @@ -10,6 +10,8 @@ exports.foo = foo; exports.bar = bar; - exports.__esModule = true; + Object.defineProperty(exports, "__esModule", { + value: true + }); })); diff --git a/test/form/namespaced-named-exports/_expected/cjs.js b/test/form/namespaced-named-exports/_expected/cjs.js index 87e3bde..a367d02 100644 --- a/test/form/namespaced-named-exports/_expected/cjs.js +++ b/test/form/namespaced-named-exports/_expected/cjs.js @@ -4,4 +4,6 @@ var answer = 42; exports.answer = answer; -exports.__esModule = true; +Object.defineProperty(exports, "__esModule", { + value: true +}); diff --git a/test/form/namespaced-named-exports/_expected/umd.js b/test/form/namespaced-named-exports/_expected/umd.js index f0e64a6..54733bf 100644 --- a/test/form/namespaced-named-exports/_expected/umd.js +++ b/test/form/namespaced-named-exports/_expected/umd.js @@ -8,6 +8,8 @@ exports.answer = answer; - exports.__esModule = true; + Object.defineProperty(exports, "__esModule", { + value: true + }); })); diff --git a/test/form/no-treeshake/_expected/cjs.js b/test/form/no-treeshake/_expected/cjs.js index d8fdece..447ad76 100644 --- a/test/form/no-treeshake/_expected/cjs.js +++ b/test/form/no-treeshake/_expected/cjs.js @@ -24,4 +24,6 @@ exports.create = create; exports.getPrototypeOf = getPrototypeOf; exports.strange = quux; -exports.__esModule = true; +Object.defineProperty(exports, "__esModule", { + value: true +}); diff --git a/test/form/no-treeshake/_expected/umd.js b/test/form/no-treeshake/_expected/umd.js index ce07d58..711654a 100644 --- a/test/form/no-treeshake/_expected/umd.js +++ b/test/form/no-treeshake/_expected/umd.js @@ -26,6 +26,8 @@ exports.getPrototypeOf = getPrototypeOf; exports.strange = quux; - exports.__esModule = true; + Object.defineProperty(exports, "__esModule", { + value: true + }); })); diff --git a/test/form/preserves-comments-after-imports/_expected/cjs.js b/test/form/preserves-comments-after-imports/_expected/cjs.js index 8b4421f..f92d54d 100644 --- a/test/form/preserves-comments-after-imports/_expected/cjs.js +++ b/test/form/preserves-comments-after-imports/_expected/cjs.js @@ -8,4 +8,6 @@ var obj = { number }; exports.obj = obj; -exports.__esModule = true; +Object.defineProperty(exports, "__esModule", { + value: true +}); diff --git a/test/form/preserves-comments-after-imports/_expected/umd.js b/test/form/preserves-comments-after-imports/_expected/umd.js index 29b316b..a2f5fbf 100644 --- a/test/form/preserves-comments-after-imports/_expected/umd.js +++ b/test/form/preserves-comments-after-imports/_expected/umd.js @@ -12,6 +12,8 @@ exports.obj = obj; - exports.__esModule = true; + Object.defineProperty(exports, "__esModule", { + value: true + }); })); diff --git a/test/form/umd-noconflict/_expected/cjs.js b/test/form/umd-noconflict/_expected/cjs.js index df41ba1..1e80273 100644 --- a/test/form/umd-noconflict/_expected/cjs.js +++ b/test/form/umd-noconflict/_expected/cjs.js @@ -12,4 +12,6 @@ exports.doThings = doThings; exports.number = number; exports.setting = setting; -exports.__esModule = true; +Object.defineProperty(exports, "__esModule", { + value: true +}); diff --git a/test/form/umd-noconflict/_expected/umd.js b/test/form/umd-noconflict/_expected/umd.js index 3a7d1d1..50b58d4 100644 --- a/test/form/umd-noconflict/_expected/umd.js +++ b/test/form/umd-noconflict/_expected/umd.js @@ -21,6 +21,8 @@ exports.number = number; exports.setting = setting; - exports.__esModule = true; + Object.defineProperty(exports, "__esModule", { + value: true + }); })); diff --git a/test/function/deconflicts-exports/_config.js b/test/function/deconflicts-exports/_config.js index a564b5c..8724967 100644 --- a/test/function/deconflicts-exports/_config.js +++ b/test/function/deconflicts-exports/_config.js @@ -3,7 +3,7 @@ var assert = require( 'assert' ); module.exports = { description: 'renames variables named `exports` if necessary', exports: function ( exports ) { - assert.deepEqual( Object.keys( exports ), [ 'a', 'b', '__esModule' ] ); + assert.deepEqual( Object.keys( exports ), [ 'a', 'b' ] ); assert.equal( exports.a, 'A' ); assert.equal( exports.b, 42 ); } diff --git a/test/function/export-destruction/_config.js b/test/function/export-destruction/_config.js index 740e33a..263c8d1 100644 --- a/test/function/export-destruction/_config.js +++ b/test/function/export-destruction/_config.js @@ -5,7 +5,7 @@ module.exports = { babel: true, exports: function ( exports ) { - assert.deepEqual( Object.keys( exports ), [ 'baz', 'quux', '__esModule' ] ); + assert.deepEqual( Object.keys( exports ), [ 'baz', 'quux' ] ); assert.equal( exports.baz, 5 ); assert.equal( exports.quux, 17 ); }