From 9fc39d128f88243cb716fc6ec821cab825a59008 Mon Sep 17 00:00:00 2001 From: Ben Scott <227292+BPScott@users.noreply.github.com> Date: Mon, 22 Nov 2021 06:11:50 +0000 Subject: [PATCH] Use entryFileNames when generating filenames for virtual modules (#4270) * Use entryFileNames for virtual files when preserveModules is set * Fix existing tests - virtual files now have a .js extension by default - systemjs module references include this file extension - amd module references omit this file extension. this seems to be consistent with amd output of other chunks * Add new test for virtual file output when modifying entryFileNames Use entryFileNames to change the extension of the filename to be mjs, and see that the file created from the virtual file chunk has a .mjs extension Note that the amd definition contains the .mjs extension, as amd ids only strip the .js file extension, which is slightly odd but probably ok as this amd is not the targetted usecase for this behaviour * Refactor - don't repeat pattern generation logic --- src/Chunk.ts | 39 +++++++++++-------- ...s-exports => other.js_commonjs-exports.js} | 0 ...s-exports => other.js_commonjs-exports.js} | 0 .../_expected/cjs/commonjs.js | 2 +- .../_expected/cjs/other.js | 2 +- ...s-exports => other.js_commonjs-exports.js} | 0 .../_expected/es/commonjs.js | 2 +- .../_expected/es/other.js | 4 +- ...s-exports => other.js_commonjs-exports.js} | 0 .../_expected/system/commonjs.js | 2 +- .../_expected/system/other.js | 2 +- .../{_virtualModule => _virtualModule.js} | 0 .../{_virtualModule => _virtualModule.js} | 0 .../_expected/cjs/main.js | 2 +- .../{_virtualModule => _virtualModule.js} | 0 .../_expected/es/main.js | 2 +- .../{_virtualModule => _virtualModule.js} | 0 .../_expected/system/main.js | 2 +- ...s-exports => other.js_commonjs-exports.js} | 0 ...s-exports => other.js_commonjs-exports.js} | 0 .../_expected/cjs/commonjs.js | 2 +- .../_expected/cjs/other.js | 2 +- ...s-exports => other.js_commonjs-exports.js} | 0 .../_expected/es/commonjs.js | 2 +- .../_expected/es/other.js | 4 +- ...s-exports => other.js_commonjs-exports.js} | 0 .../_expected/system/commonjs.js | 2 +- .../_expected/system/other.js | 2 +- ...s-exports => index.js_commonjs-exports.js} | 0 ...s-exports => index.js_commonjs-exports.js} | 0 .../_expected/cjs/below/module.js | 2 +- .../@my-scope/my-base-pkg/index.js | 2 +- .../_expected/cjs/under-build.js | 2 +- ...s-exports => index.js_commonjs-exports.js} | 0 .../_expected/es/below/module.js | 2 +- .../@my-scope/my-base-pkg/index.js | 4 +- .../_expected/es/under-build.js | 2 +- ...s-exports => index.js_commonjs-exports.js} | 0 .../_expected/system/below/module.js | 2 +- .../@my-scope/my-base-pkg/index.js | 2 +- .../_expected/system/under-build.js | 2 +- .../_config.js | 34 ++++++++++++++++ .../_virtual/entry-_virtualModule-amd-.mjs} | 0 ...y-_virtualWithAssetExt-amd-str.str.str.mjs | 9 +++++ .../entry-_virtualWithExt-amd-js.js.mjs | 9 +++++ .../_expected/amd/entry-main-amd-js.js.mjs | 7 ++++ .../_virtual/entry-_virtualModule-cjs-.mjs} | 0 ...y-_virtualWithAssetExt-cjs-str.str.str.mjs | 7 ++++ .../entry-_virtualWithExt-cjs-js.js.mjs | 7 ++++ .../_expected/cjs/entry-main-cjs-js.js.mjs | 9 +++++ .../es/_virtual/entry-_virtualModule-es-.mjs} | 0 ...ry-_virtualWithAssetExt-es-str.str.str.mjs | 3 ++ .../entry-_virtualWithExt-es-js.js.mjs | 3 ++ .../_expected/es/entry-main-es-js.js.mjs | 7 ++++ .../entry-_virtualModule-system-.mjs} | 0 ...virtualWithAssetExt-system-str.str.str.mjs | 10 +++++ .../entry-_virtualWithExt-system-js.js.mjs | 10 +++++ .../system/entry-main-system-js.js.mjs | 20 ++++++++++ .../main.js | 3 ++ .../_expected/amd/_virtual/_virtualModule.js | 9 +++++ .../_expected/cjs/_virtual/_virtualModule.js | 7 ++++ .../_expected/cjs/main.js | 2 +- .../_expected/es/_virtual/_virtualModule.js | 3 ++ .../_expected/es/main.js | 2 +- .../system/_virtual/_virtualModule.js | 10 +++++ .../_expected/system/main.js | 2 +- .../virtual-modules/_config.js | 2 +- .../virtual-modules/_config.js | 2 +- test/misc/bundle-information.js | 19 +++++---- 69 files changed, 234 insertions(+), 55 deletions(-) rename test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/amd/_virtual/{other.js_commonjs-exports => other.js_commonjs-exports.js} (100%) rename test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/_virtual/{other.js_commonjs-exports => other.js_commonjs-exports.js} (100%) rename test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/_virtual/{other.js_commonjs-exports => other.js_commonjs-exports.js} (100%) rename test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/_virtual/{other.js_commonjs-exports => other.js_commonjs-exports.js} (100%) rename test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/amd/_virtual/{_virtualModule => _virtualModule.js} (100%) rename test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/cjs/_virtual/{_virtualModule => _virtualModule.js} (100%) rename test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/es/_virtual/{_virtualModule => _virtualModule.js} (100%) rename test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/system/_virtual/{_virtualModule => _virtualModule.js} (100%) rename test/chunking-form/samples/preserve-modules-commonjs/_expected/amd/_virtual/{other.js_commonjs-exports => other.js_commonjs-exports.js} (100%) rename test/chunking-form/samples/preserve-modules-commonjs/_expected/cjs/_virtual/{other.js_commonjs-exports => other.js_commonjs-exports.js} (100%) rename test/chunking-form/samples/preserve-modules-commonjs/_expected/es/_virtual/{other.js_commonjs-exports => other.js_commonjs-exports.js} (100%) rename test/chunking-form/samples/preserve-modules-commonjs/_expected/system/_virtual/{other.js_commonjs-exports => other.js_commonjs-exports.js} (100%) rename test/chunking-form/samples/preserve-modules-root/_expected/amd/_virtual/{index.js_commonjs-exports => index.js_commonjs-exports.js} (100%) rename test/chunking-form/samples/preserve-modules-root/_expected/cjs/_virtual/{index.js_commonjs-exports => index.js_commonjs-exports.js} (100%) rename test/chunking-form/samples/preserve-modules-root/_expected/es/_virtual/{index.js_commonjs-exports => index.js_commonjs-exports.js} (100%) rename test/chunking-form/samples/preserve-modules-root/_expected/system/_virtual/{index.js_commonjs-exports => index.js_commonjs-exports.js} (100%) create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_config.js rename test/chunking-form/samples/{preserve-modules-virtual-modules/_expected/amd/_virtual/_virtualModule => preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/entry-_virtualModule-amd-.mjs} (100%) create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/entry-_virtualWithAssetExt-amd-str.str.str.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/entry-_virtualWithExt-amd-js.js.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/entry-main-amd-js.js.mjs rename test/chunking-form/samples/{preserve-modules-virtual-modules/_expected/cjs/_virtual/_virtualModule => preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/entry-_virtualModule-cjs-.mjs} (100%) create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/entry-_virtualWithAssetExt-cjs-str.str.str.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/entry-_virtualWithExt-cjs-js.js.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/entry-main-cjs-js.js.mjs rename test/chunking-form/samples/{preserve-modules-virtual-modules/_expected/es/_virtual/_virtualModule => preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/entry-_virtualModule-es-.mjs} (100%) create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/entry-_virtualWithAssetExt-es-str.str.str.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/entry-_virtualWithExt-es-js.js.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/entry-main-es-js.js.mjs rename test/chunking-form/samples/{preserve-modules-virtual-modules/_expected/system/_virtual/_virtualModule => preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/entry-_virtualModule-system-.mjs} (100%) create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/entry-_virtualWithAssetExt-system-str.str.str.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/entry-_virtualWithExt-system-js.js.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/entry-main-system-js.js.mjs create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/main.js create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules/_expected/amd/_virtual/_virtualModule.js create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules/_expected/cjs/_virtual/_virtualModule.js create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules/_expected/es/_virtual/_virtualModule.js create mode 100644 test/chunking-form/samples/preserve-modules-virtual-modules/_expected/system/_virtual/_virtualModule.js diff --git a/src/Chunk.ts b/src/Chunk.ts index 2c9ab46305d..e7e48a4fb3f 100644 --- a/src/Chunk.ts +++ b/src/Chunk.ts @@ -434,23 +434,22 @@ export default class Chunk { const id = this.orderedModules[0].id; const sanitizedId = this.outputOptions.sanitizeFileName(id); let path: string; + + const patternOpt = unsetOptions.has('entryFileNames') + ? '[name][assetExtname].js' + : options.entryFileNames; + const pattern = typeof patternOpt === 'function' ? patternOpt(this.getChunkInfo()) : patternOpt; + if (isAbsolute(id)) { - const extension = extname(id); - const pattern = unsetOptions.has('entryFileNames') - ? '[name][assetExtname].js' - : options.entryFileNames; const currentDir = dirname(sanitizedId); - const fileName = renderNamePattern( - typeof pattern === 'function' ? pattern(this.getChunkInfo()) : pattern, - 'output.entryFileNames', - { - assetExtname: () => (NON_ASSET_EXTENSIONS.includes(extension) ? '' : extension), - ext: () => extension.substr(1), - extname: () => extension, - format: () => options.format as string, - name: () => this.getChunkName() - } - ); + const extension = extname(id); + const fileName = renderNamePattern(pattern, 'output.entryFileNames', { + assetExtname: () => (NON_ASSET_EXTENSIONS.includes(extension) ? '' : extension), + ext: () => extension.substr(1), + extname: () => extension, + format: () => options.format as string, + name: () => this.getChunkName() + }); const currentPath = `${currentDir}/${fileName}`; const { preserveModulesRoot } = options; if (preserveModulesRoot && currentPath.startsWith(preserveModulesRoot)) { @@ -459,7 +458,15 @@ export default class Chunk { path = relative(preserveModulesRelativeDir, currentPath); } } else { - path = `_virtual/${basename(sanitizedId)}`; + const extension = extname(sanitizedId); + const fileName = renderNamePattern(pattern, 'output.entryFileNames', { + assetExtname: () => (NON_ASSET_EXTENSIONS.includes(extension) ? '' : extension), + ext: () => extension.substr(1), + extname: () => extension, + format: () => options.format as string, + name: () => getAliasName(sanitizedId) + }); + path = `_virtual/${fileName}`; } return makeUnique(normalize(path), existingNames); } diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/amd/_virtual/other.js_commonjs-exports b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/amd/_virtual/other.js_commonjs-exports.js similarity index 100% rename from test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/amd/_virtual/other.js_commonjs-exports rename to test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/amd/_virtual/other.js_commonjs-exports.js diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/_virtual/other.js_commonjs-exports b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/_virtual/other.js_commonjs-exports.js similarity index 100% rename from test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/_virtual/other.js_commonjs-exports rename to test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/_virtual/other.js_commonjs-exports.js diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/commonjs.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/commonjs.js index 9d8a2671e86..4f3a50071b2 100644 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/commonjs.js +++ b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/commonjs.js @@ -2,7 +2,7 @@ var require$$0 = require('external'); require('./other.js'); -var other = require('./_virtual/other.js_commonjs-exports'); +var other = require('./_virtual/other.js_commonjs-exports.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/other.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/other.js index a514a7d358f..0c28672ba27 100644 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/other.js +++ b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/cjs/other.js @@ -1,6 +1,6 @@ 'use strict'; -var other = require('./_virtual/other.js_commonjs-exports'); +var other = require('./_virtual/other.js_commonjs-exports.js'); other.__exports.value = 43; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/_virtual/other.js_commonjs-exports b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/_virtual/other.js_commonjs-exports.js similarity index 100% rename from test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/_virtual/other.js_commonjs-exports rename to test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/_virtual/other.js_commonjs-exports.js diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/commonjs.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/commonjs.js index a301391b5fc..643dfd6b0ac 100644 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/commonjs.js +++ b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/commonjs.js @@ -1,6 +1,6 @@ import require$$0 from 'external'; import './other.js'; -import { __exports as other } from './_virtual/other.js_commonjs-exports'; +import { __exports as other } from './_virtual/other.js_commonjs-exports.js'; const external = require$$0; const { value } = other; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/other.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/other.js index f9d6ad0cb3c..180a5f6c9d5 100644 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/other.js +++ b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/es/other.js @@ -1,4 +1,4 @@ -import { __exports as other } from './_virtual/other.js_commonjs-exports'; -export { __exports as default } from './_virtual/other.js_commonjs-exports'; +import { __exports as other } from './_virtual/other.js_commonjs-exports.js'; +export { __exports as default } from './_virtual/other.js_commonjs-exports.js'; other.value = 43; diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/_virtual/other.js_commonjs-exports b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/_virtual/other.js_commonjs-exports.js similarity index 100% rename from test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/_virtual/other.js_commonjs-exports rename to test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/_virtual/other.js_commonjs-exports.js diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/commonjs.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/commonjs.js index 0df36bf9a75..e5183e581cc 100644 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/commonjs.js +++ b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/commonjs.js @@ -1,4 +1,4 @@ -System.register(['external', './other.js', './_virtual/other.js_commonjs-exports'], (function (exports) { +System.register(['external', './other.js', './_virtual/other.js_commonjs-exports.js'], (function (exports) { 'use strict'; var require$$0, other; return { diff --git a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/other.js b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/other.js index 0c908825185..6fd8ed491ce 100644 --- a/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/other.js +++ b/test/chunking-form/samples/deprecated/preserve-modules-commonjs/_expected/system/other.js @@ -1,4 +1,4 @@ -System.register(['./_virtual/other.js_commonjs-exports'], (function (exports) { +System.register(['./_virtual/other.js_commonjs-exports.js'], (function (exports) { 'use strict'; var other; return { diff --git a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/amd/_virtual/_virtualModule b/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/amd/_virtual/_virtualModule.js similarity index 100% rename from test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/amd/_virtual/_virtualModule rename to test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/amd/_virtual/_virtualModule.js diff --git a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/cjs/_virtual/_virtualModule b/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/cjs/_virtual/_virtualModule.js similarity index 100% rename from test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/cjs/_virtual/_virtualModule rename to test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/cjs/_virtual/_virtualModule.js diff --git a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/cjs/main.js b/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/cjs/main.js index c32672f1b85..a3d4133c5c7 100644 --- a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/cjs/main.js +++ b/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/cjs/main.js @@ -1,5 +1,5 @@ 'use strict'; -var _virtualModule = require('./_virtual/_virtualModule'); +var _virtualModule = require('./_virtual/_virtualModule.js'); assert.equal(_virtualModule.virtual, 'Virtual!'); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/es/_virtual/_virtualModule b/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/es/_virtual/_virtualModule.js similarity index 100% rename from test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/es/_virtual/_virtualModule rename to test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/es/_virtual/_virtualModule.js diff --git a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/es/main.js b/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/es/main.js index 6bb75abdf27..96f7b331789 100644 --- a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/es/main.js +++ b/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/es/main.js @@ -1,3 +1,3 @@ -import { virtual } from './_virtual/_virtualModule'; +import { virtual } from './_virtual/_virtualModule.js'; assert.equal(virtual, 'Virtual!'); diff --git a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/system/_virtual/_virtualModule b/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/system/_virtual/_virtualModule.js similarity index 100% rename from test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/system/_virtual/_virtualModule rename to test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/system/_virtual/_virtualModule.js diff --git a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/system/main.js b/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/system/main.js index eed2c557e47..f92fd60397b 100644 --- a/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/system/main.js +++ b/test/chunking-form/samples/deprecated/preserve-modules-virtual-modules/_expected/system/main.js @@ -1,4 +1,4 @@ -System.register(['./_virtual/_virtualModule'], (function () { +System.register(['./_virtual/_virtualModule.js'], (function () { 'use strict'; var virtual; return { diff --git a/test/chunking-form/samples/preserve-modules-commonjs/_expected/amd/_virtual/other.js_commonjs-exports b/test/chunking-form/samples/preserve-modules-commonjs/_expected/amd/_virtual/other.js_commonjs-exports.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-commonjs/_expected/amd/_virtual/other.js_commonjs-exports rename to test/chunking-form/samples/preserve-modules-commonjs/_expected/amd/_virtual/other.js_commonjs-exports.js diff --git a/test/chunking-form/samples/preserve-modules-commonjs/_expected/cjs/_virtual/other.js_commonjs-exports b/test/chunking-form/samples/preserve-modules-commonjs/_expected/cjs/_virtual/other.js_commonjs-exports.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-commonjs/_expected/cjs/_virtual/other.js_commonjs-exports rename to test/chunking-form/samples/preserve-modules-commonjs/_expected/cjs/_virtual/other.js_commonjs-exports.js diff --git a/test/chunking-form/samples/preserve-modules-commonjs/_expected/cjs/commonjs.js b/test/chunking-form/samples/preserve-modules-commonjs/_expected/cjs/commonjs.js index 9d8a2671e86..4f3a50071b2 100644 --- a/test/chunking-form/samples/preserve-modules-commonjs/_expected/cjs/commonjs.js +++ b/test/chunking-form/samples/preserve-modules-commonjs/_expected/cjs/commonjs.js @@ -2,7 +2,7 @@ var require$$0 = require('external'); require('./other.js'); -var other = require('./_virtual/other.js_commonjs-exports'); +var other = require('./_virtual/other.js_commonjs-exports.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } diff --git a/test/chunking-form/samples/preserve-modules-commonjs/_expected/cjs/other.js b/test/chunking-form/samples/preserve-modules-commonjs/_expected/cjs/other.js index a514a7d358f..0c28672ba27 100644 --- a/test/chunking-form/samples/preserve-modules-commonjs/_expected/cjs/other.js +++ b/test/chunking-form/samples/preserve-modules-commonjs/_expected/cjs/other.js @@ -1,6 +1,6 @@ 'use strict'; -var other = require('./_virtual/other.js_commonjs-exports'); +var other = require('./_virtual/other.js_commonjs-exports.js'); other.__exports.value = 43; diff --git a/test/chunking-form/samples/preserve-modules-commonjs/_expected/es/_virtual/other.js_commonjs-exports b/test/chunking-form/samples/preserve-modules-commonjs/_expected/es/_virtual/other.js_commonjs-exports.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-commonjs/_expected/es/_virtual/other.js_commonjs-exports rename to test/chunking-form/samples/preserve-modules-commonjs/_expected/es/_virtual/other.js_commonjs-exports.js diff --git a/test/chunking-form/samples/preserve-modules-commonjs/_expected/es/commonjs.js b/test/chunking-form/samples/preserve-modules-commonjs/_expected/es/commonjs.js index a301391b5fc..643dfd6b0ac 100644 --- a/test/chunking-form/samples/preserve-modules-commonjs/_expected/es/commonjs.js +++ b/test/chunking-form/samples/preserve-modules-commonjs/_expected/es/commonjs.js @@ -1,6 +1,6 @@ import require$$0 from 'external'; import './other.js'; -import { __exports as other } from './_virtual/other.js_commonjs-exports'; +import { __exports as other } from './_virtual/other.js_commonjs-exports.js'; const external = require$$0; const { value } = other; diff --git a/test/chunking-form/samples/preserve-modules-commonjs/_expected/es/other.js b/test/chunking-form/samples/preserve-modules-commonjs/_expected/es/other.js index f9d6ad0cb3c..180a5f6c9d5 100644 --- a/test/chunking-form/samples/preserve-modules-commonjs/_expected/es/other.js +++ b/test/chunking-form/samples/preserve-modules-commonjs/_expected/es/other.js @@ -1,4 +1,4 @@ -import { __exports as other } from './_virtual/other.js_commonjs-exports'; -export { __exports as default } from './_virtual/other.js_commonjs-exports'; +import { __exports as other } from './_virtual/other.js_commonjs-exports.js'; +export { __exports as default } from './_virtual/other.js_commonjs-exports.js'; other.value = 43; diff --git a/test/chunking-form/samples/preserve-modules-commonjs/_expected/system/_virtual/other.js_commonjs-exports b/test/chunking-form/samples/preserve-modules-commonjs/_expected/system/_virtual/other.js_commonjs-exports.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-commonjs/_expected/system/_virtual/other.js_commonjs-exports rename to test/chunking-form/samples/preserve-modules-commonjs/_expected/system/_virtual/other.js_commonjs-exports.js diff --git a/test/chunking-form/samples/preserve-modules-commonjs/_expected/system/commonjs.js b/test/chunking-form/samples/preserve-modules-commonjs/_expected/system/commonjs.js index 0df36bf9a75..e5183e581cc 100644 --- a/test/chunking-form/samples/preserve-modules-commonjs/_expected/system/commonjs.js +++ b/test/chunking-form/samples/preserve-modules-commonjs/_expected/system/commonjs.js @@ -1,4 +1,4 @@ -System.register(['external', './other.js', './_virtual/other.js_commonjs-exports'], (function (exports) { +System.register(['external', './other.js', './_virtual/other.js_commonjs-exports.js'], (function (exports) { 'use strict'; var require$$0, other; return { diff --git a/test/chunking-form/samples/preserve-modules-commonjs/_expected/system/other.js b/test/chunking-form/samples/preserve-modules-commonjs/_expected/system/other.js index 0c908825185..6fd8ed491ce 100644 --- a/test/chunking-form/samples/preserve-modules-commonjs/_expected/system/other.js +++ b/test/chunking-form/samples/preserve-modules-commonjs/_expected/system/other.js @@ -1,4 +1,4 @@ -System.register(['./_virtual/other.js_commonjs-exports'], (function (exports) { +System.register(['./_virtual/other.js_commonjs-exports.js'], (function (exports) { 'use strict'; var other; return { diff --git a/test/chunking-form/samples/preserve-modules-root/_expected/amd/_virtual/index.js_commonjs-exports b/test/chunking-form/samples/preserve-modules-root/_expected/amd/_virtual/index.js_commonjs-exports.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-root/_expected/amd/_virtual/index.js_commonjs-exports rename to test/chunking-form/samples/preserve-modules-root/_expected/amd/_virtual/index.js_commonjs-exports.js diff --git a/test/chunking-form/samples/preserve-modules-root/_expected/cjs/_virtual/index.js_commonjs-exports b/test/chunking-form/samples/preserve-modules-root/_expected/cjs/_virtual/index.js_commonjs-exports.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-root/_expected/cjs/_virtual/index.js_commonjs-exports rename to test/chunking-form/samples/preserve-modules-root/_expected/cjs/_virtual/index.js_commonjs-exports.js diff --git a/test/chunking-form/samples/preserve-modules-root/_expected/cjs/below/module.js b/test/chunking-form/samples/preserve-modules-root/_expected/cjs/below/module.js index e3a47727a0d..24502570011 100644 --- a/test/chunking-form/samples/preserve-modules-root/_expected/cjs/below/module.js +++ b/test/chunking-form/samples/preserve-modules-root/_expected/cjs/below/module.js @@ -1,7 +1,7 @@ 'use strict'; require('../custom_modules/@my-scope/my-base-pkg/index.js'); -var index = require('../_virtual/index.js_commonjs-exports'); +var index = require('../_virtual/index.js_commonjs-exports.js'); const base2 = index.__exports; diff --git a/test/chunking-form/samples/preserve-modules-root/_expected/cjs/custom_modules/@my-scope/my-base-pkg/index.js b/test/chunking-form/samples/preserve-modules-root/_expected/cjs/custom_modules/@my-scope/my-base-pkg/index.js index 64f5ebacc3f..5766b8f61f1 100644 --- a/test/chunking-form/samples/preserve-modules-root/_expected/cjs/custom_modules/@my-scope/my-base-pkg/index.js +++ b/test/chunking-form/samples/preserve-modules-root/_expected/cjs/custom_modules/@my-scope/my-base-pkg/index.js @@ -1,6 +1,6 @@ 'use strict'; -var index = require('../../../_virtual/index.js_commonjs-exports'); +var index = require('../../../_virtual/index.js_commonjs-exports.js'); Object.defineProperty(index.__exports, '__esModule', { value: true }); diff --git a/test/chunking-form/samples/preserve-modules-root/_expected/cjs/under-build.js b/test/chunking-form/samples/preserve-modules-root/_expected/cjs/under-build.js index 60f12b2b07f..dc269d6be5c 100644 --- a/test/chunking-form/samples/preserve-modules-root/_expected/cjs/under-build.js +++ b/test/chunking-form/samples/preserve-modules-root/_expected/cjs/under-build.js @@ -1,7 +1,7 @@ 'use strict'; require('./custom_modules/@my-scope/my-base-pkg/index.js'); -var index = require('./_virtual/index.js_commonjs-exports'); +var index = require('./_virtual/index.js_commonjs-exports.js'); const base = index.__exports; diff --git a/test/chunking-form/samples/preserve-modules-root/_expected/es/_virtual/index.js_commonjs-exports b/test/chunking-form/samples/preserve-modules-root/_expected/es/_virtual/index.js_commonjs-exports.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-root/_expected/es/_virtual/index.js_commonjs-exports rename to test/chunking-form/samples/preserve-modules-root/_expected/es/_virtual/index.js_commonjs-exports.js diff --git a/test/chunking-form/samples/preserve-modules-root/_expected/es/below/module.js b/test/chunking-form/samples/preserve-modules-root/_expected/es/below/module.js index b0b5587c304..594640e5d5a 100644 --- a/test/chunking-form/samples/preserve-modules-root/_expected/es/below/module.js +++ b/test/chunking-form/samples/preserve-modules-root/_expected/es/below/module.js @@ -1,5 +1,5 @@ import '../custom_modules/@my-scope/my-base-pkg/index.js'; -import { __exports as myBasePkg } from '../_virtual/index.js_commonjs-exports'; +import { __exports as myBasePkg } from '../_virtual/index.js_commonjs-exports.js'; const base2 = myBasePkg; diff --git a/test/chunking-form/samples/preserve-modules-root/_expected/es/custom_modules/@my-scope/my-base-pkg/index.js b/test/chunking-form/samples/preserve-modules-root/_expected/es/custom_modules/@my-scope/my-base-pkg/index.js index 5c1ff69b019..d77cdc8b84e 100644 --- a/test/chunking-form/samples/preserve-modules-root/_expected/es/custom_modules/@my-scope/my-base-pkg/index.js +++ b/test/chunking-form/samples/preserve-modules-root/_expected/es/custom_modules/@my-scope/my-base-pkg/index.js @@ -1,5 +1,5 @@ -import { __exports as myBasePkg } from '../../../_virtual/index.js_commonjs-exports'; -export { __exports as default } from '../../../_virtual/index.js_commonjs-exports'; +import { __exports as myBasePkg } from '../../../_virtual/index.js_commonjs-exports.js'; +export { __exports as default } from '../../../_virtual/index.js_commonjs-exports.js'; Object.defineProperty(myBasePkg, '__esModule', { value: true }); diff --git a/test/chunking-form/samples/preserve-modules-root/_expected/es/under-build.js b/test/chunking-form/samples/preserve-modules-root/_expected/es/under-build.js index 17be990060c..4bc029cb9f9 100644 --- a/test/chunking-form/samples/preserve-modules-root/_expected/es/under-build.js +++ b/test/chunking-form/samples/preserve-modules-root/_expected/es/under-build.js @@ -1,5 +1,5 @@ import './custom_modules/@my-scope/my-base-pkg/index.js'; -import { __exports as myBasePkg } from './_virtual/index.js_commonjs-exports'; +import { __exports as myBasePkg } from './_virtual/index.js_commonjs-exports.js'; const base = myBasePkg; diff --git a/test/chunking-form/samples/preserve-modules-root/_expected/system/_virtual/index.js_commonjs-exports b/test/chunking-form/samples/preserve-modules-root/_expected/system/_virtual/index.js_commonjs-exports.js similarity index 100% rename from test/chunking-form/samples/preserve-modules-root/_expected/system/_virtual/index.js_commonjs-exports rename to test/chunking-form/samples/preserve-modules-root/_expected/system/_virtual/index.js_commonjs-exports.js diff --git a/test/chunking-form/samples/preserve-modules-root/_expected/system/below/module.js b/test/chunking-form/samples/preserve-modules-root/_expected/system/below/module.js index 9544e4c8178..baeb375c26d 100644 --- a/test/chunking-form/samples/preserve-modules-root/_expected/system/below/module.js +++ b/test/chunking-form/samples/preserve-modules-root/_expected/system/below/module.js @@ -1,4 +1,4 @@ -System.register(['../custom_modules/@my-scope/my-base-pkg/index.js', '../_virtual/index.js_commonjs-exports'], (function (exports) { +System.register(['../custom_modules/@my-scope/my-base-pkg/index.js', '../_virtual/index.js_commonjs-exports.js'], (function (exports) { 'use strict'; var myBasePkg; return { diff --git a/test/chunking-form/samples/preserve-modules-root/_expected/system/custom_modules/@my-scope/my-base-pkg/index.js b/test/chunking-form/samples/preserve-modules-root/_expected/system/custom_modules/@my-scope/my-base-pkg/index.js index 840aa037c93..6151b15c986 100644 --- a/test/chunking-form/samples/preserve-modules-root/_expected/system/custom_modules/@my-scope/my-base-pkg/index.js +++ b/test/chunking-form/samples/preserve-modules-root/_expected/system/custom_modules/@my-scope/my-base-pkg/index.js @@ -1,4 +1,4 @@ -System.register(['../../../_virtual/index.js_commonjs-exports'], (function (exports) { +System.register(['../../../_virtual/index.js_commonjs-exports.js'], (function (exports) { 'use strict'; var myBasePkg; return { diff --git a/test/chunking-form/samples/preserve-modules-root/_expected/system/under-build.js b/test/chunking-form/samples/preserve-modules-root/_expected/system/under-build.js index 178399de6aa..ff4a383d998 100644 --- a/test/chunking-form/samples/preserve-modules-root/_expected/system/under-build.js +++ b/test/chunking-form/samples/preserve-modules-root/_expected/system/under-build.js @@ -1,4 +1,4 @@ -System.register(['./custom_modules/@my-scope/my-base-pkg/index.js', './_virtual/index.js_commonjs-exports'], (function (exports) { +System.register(['./custom_modules/@my-scope/my-base-pkg/index.js', './_virtual/index.js_commonjs-exports.js'], (function (exports) { 'use strict'; var myBasePkg; return { diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_config.js b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_config.js new file mode 100644 index 00000000000..7fb5e301d03 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_config.js @@ -0,0 +1,34 @@ +module.exports = { + description: + 'Generates actual files whose filename adheres to entryFileNames for virtual modules when preserving modules', + options: { + input: 'main.js', + output: { + preserveModules: true, + entryFileNames: 'entry-[name]-[format]-[ext][extname][assetExtname].mjs' + }, + plugins: [ + { + resolveId(id) { + if (id === '\0virtualModule') return id; + if (id === '\0virtualWithExt.js') return id; + if (id === '\0virtualWithAssetExt.str') return id; + }, + load(id) { + if (id === '\0virtualModule') return 'export const virtual = "Virtual!";\n'; + if (id === '\0virtualWithExt.js') return 'export const virtual2 = "Virtual2!";\n'; + if (id === '\0virtualWithAssetExt.str') return 'export const virtual3 = "Virtual3!";\n'; + }, + transform(code, id) { + if (id === '\0virtualModule') return null; + if (id === '\0virtualWithExt.js') return null; + if (id === '\0virtualWithAssetExt.str') return null; + return ( + 'import {virtual} from "\0virtualModule";\nimport {virtual2} from "\0virtualWithExt.js";\nimport {virtual3} from "\0virtualWithAssetExt.str";' + + code + ); + } + } + ] + } +}; diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/amd/_virtual/_virtualModule b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/entry-_virtualModule-amd-.mjs similarity index 100% rename from test/chunking-form/samples/preserve-modules-virtual-modules/_expected/amd/_virtual/_virtualModule rename to test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/entry-_virtualModule-amd-.mjs diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/entry-_virtualWithAssetExt-amd-str.str.str.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/entry-_virtualWithAssetExt-amd-str.str.str.mjs new file mode 100644 index 00000000000..41ae4d0466c --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/entry-_virtualWithAssetExt-amd-str.str.str.mjs @@ -0,0 +1,9 @@ +define(['exports'], (function (exports) { 'use strict'; + + const virtual3 = "Virtual3!"; + + exports.virtual3 = virtual3; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/entry-_virtualWithExt-amd-js.js.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/entry-_virtualWithExt-amd-js.js.mjs new file mode 100644 index 00000000000..b59abe59669 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/_virtual/entry-_virtualWithExt-amd-js.js.mjs @@ -0,0 +1,9 @@ +define(['exports'], (function (exports) { 'use strict'; + + const virtual2 = "Virtual2!"; + + exports.virtual2 = virtual2; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/entry-main-amd-js.js.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/entry-main-amd-js.js.mjs new file mode 100644 index 00000000000..27fc4a86228 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/amd/entry-main-amd-js.js.mjs @@ -0,0 +1,7 @@ +define(['./_virtual/entry-_virtualModule-amd-.mjs', './_virtual/entry-_virtualWithExt-amd-js.js.mjs', './_virtual/entry-_virtualWithAssetExt-amd-str.str.str.mjs'], (function (_virtualModule, _virtualWithExt, _virtualWithAssetExt) { 'use strict'; + + assert.equal(_virtualModule.virtual, 'Virtual!'); + assert.equal(_virtualWithExt.virtual2, 'Virtual2!'); + assert.equal(_virtualWithAssetExt.virtual3, 'Virtual3!'); + +})); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/cjs/_virtual/_virtualModule b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/entry-_virtualModule-cjs-.mjs similarity index 100% rename from test/chunking-form/samples/preserve-modules-virtual-modules/_expected/cjs/_virtual/_virtualModule rename to test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/entry-_virtualModule-cjs-.mjs diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/entry-_virtualWithAssetExt-cjs-str.str.str.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/entry-_virtualWithAssetExt-cjs-str.str.str.mjs new file mode 100644 index 00000000000..1be612fa656 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/entry-_virtualWithAssetExt-cjs-str.str.str.mjs @@ -0,0 +1,7 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +const virtual3 = "Virtual3!"; + +exports.virtual3 = virtual3; diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/entry-_virtualWithExt-cjs-js.js.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/entry-_virtualWithExt-cjs-js.js.mjs new file mode 100644 index 00000000000..6c1f17fcbe4 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/_virtual/entry-_virtualWithExt-cjs-js.js.mjs @@ -0,0 +1,7 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +const virtual2 = "Virtual2!"; + +exports.virtual2 = virtual2; diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/entry-main-cjs-js.js.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/entry-main-cjs-js.js.mjs new file mode 100644 index 00000000000..fc2cfa868da --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/cjs/entry-main-cjs-js.js.mjs @@ -0,0 +1,9 @@ +'use strict'; + +var _virtualModule = require('./_virtual/entry-_virtualModule-cjs-.mjs'); +var _virtualWithExt = require('./_virtual/entry-_virtualWithExt-cjs-js.js.mjs'); +var _virtualWithAssetExt = require('./_virtual/entry-_virtualWithAssetExt-cjs-str.str.str.mjs'); + +assert.equal(_virtualModule.virtual, 'Virtual!'); +assert.equal(_virtualWithExt.virtual2, 'Virtual2!'); +assert.equal(_virtualWithAssetExt.virtual3, 'Virtual3!'); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/es/_virtual/_virtualModule b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/entry-_virtualModule-es-.mjs similarity index 100% rename from test/chunking-form/samples/preserve-modules-virtual-modules/_expected/es/_virtual/_virtualModule rename to test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/entry-_virtualModule-es-.mjs diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/entry-_virtualWithAssetExt-es-str.str.str.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/entry-_virtualWithAssetExt-es-str.str.str.mjs new file mode 100644 index 00000000000..51e7e8dd9ed --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/entry-_virtualWithAssetExt-es-str.str.str.mjs @@ -0,0 +1,3 @@ +const virtual3 = "Virtual3!"; + +export { virtual3 }; diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/entry-_virtualWithExt-es-js.js.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/entry-_virtualWithExt-es-js.js.mjs new file mode 100644 index 00000000000..b5c5634d0a3 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/_virtual/entry-_virtualWithExt-es-js.js.mjs @@ -0,0 +1,3 @@ +const virtual2 = "Virtual2!"; + +export { virtual2 }; diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/entry-main-es-js.js.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/entry-main-es-js.js.mjs new file mode 100644 index 00000000000..4f449ad7730 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/es/entry-main-es-js.js.mjs @@ -0,0 +1,7 @@ +import { virtual } from './_virtual/entry-_virtualModule-es-.mjs'; +import { virtual2 } from './_virtual/entry-_virtualWithExt-es-js.js.mjs'; +import { virtual3 } from './_virtual/entry-_virtualWithAssetExt-es-str.str.str.mjs'; + +assert.equal(virtual, 'Virtual!'); +assert.equal(virtual2, 'Virtual2!'); +assert.equal(virtual3, 'Virtual3!'); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/system/_virtual/_virtualModule b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/entry-_virtualModule-system-.mjs similarity index 100% rename from test/chunking-form/samples/preserve-modules-virtual-modules/_expected/system/_virtual/_virtualModule rename to test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/entry-_virtualModule-system-.mjs diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/entry-_virtualWithAssetExt-system-str.str.str.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/entry-_virtualWithAssetExt-system-str.str.str.mjs new file mode 100644 index 00000000000..d81822443bb --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/entry-_virtualWithAssetExt-system-str.str.str.mjs @@ -0,0 +1,10 @@ +System.register([], (function (exports) { + 'use strict'; + return { + execute: (function () { + + const virtual3 = exports('virtual3', "Virtual3!"); + + }) + }; +})); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/entry-_virtualWithExt-system-js.js.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/entry-_virtualWithExt-system-js.js.mjs new file mode 100644 index 00000000000..3a4749cd582 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/_virtual/entry-_virtualWithExt-system-js.js.mjs @@ -0,0 +1,10 @@ +System.register([], (function (exports) { + 'use strict'; + return { + execute: (function () { + + const virtual2 = exports('virtual2', "Virtual2!"); + + }) + }; +})); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/entry-main-system-js.js.mjs b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/entry-main-system-js.js.mjs new file mode 100644 index 00000000000..f9381cf4e12 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/_expected/system/entry-main-system-js.js.mjs @@ -0,0 +1,20 @@ +System.register(['./_virtual/entry-_virtualModule-system-.mjs', './_virtual/entry-_virtualWithExt-system-js.js.mjs', './_virtual/entry-_virtualWithAssetExt-system-str.str.str.mjs'], (function () { + 'use strict'; + var virtual, virtual2, virtual3; + return { + setters: [function (module) { + virtual = module.virtual; + }, function (module) { + virtual2 = module.virtual2; + }, function (module) { + virtual3 = module.virtual3; + }], + execute: (function () { + + assert.equal(virtual, 'Virtual!'); + assert.equal(virtual2, 'Virtual2!'); + assert.equal(virtual3, 'Virtual3!'); + + }) + }; +})); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/main.js b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/main.js new file mode 100644 index 00000000000..f5d5d01a912 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules-filename-pattern/main.js @@ -0,0 +1,3 @@ +assert.equal(virtual, 'Virtual!'); +assert.equal(virtual2, 'Virtual2!'); +assert.equal(virtual3, 'Virtual3!'); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/amd/_virtual/_virtualModule.js b/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/amd/_virtual/_virtualModule.js new file mode 100644 index 00000000000..ce212753ac0 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/amd/_virtual/_virtualModule.js @@ -0,0 +1,9 @@ +define(['exports'], (function (exports) { 'use strict'; + + const virtual = "Virtual!"; + + exports.virtual = virtual; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/cjs/_virtual/_virtualModule.js b/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/cjs/_virtual/_virtualModule.js new file mode 100644 index 00000000000..3b40ebf67c2 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/cjs/_virtual/_virtualModule.js @@ -0,0 +1,7 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +const virtual = "Virtual!"; + +exports.virtual = virtual; diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/cjs/main.js b/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/cjs/main.js index c32672f1b85..a3d4133c5c7 100644 --- a/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/cjs/main.js +++ b/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/cjs/main.js @@ -1,5 +1,5 @@ 'use strict'; -var _virtualModule = require('./_virtual/_virtualModule'); +var _virtualModule = require('./_virtual/_virtualModule.js'); assert.equal(_virtualModule.virtual, 'Virtual!'); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/es/_virtual/_virtualModule.js b/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/es/_virtual/_virtualModule.js new file mode 100644 index 00000000000..2bada18c396 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/es/_virtual/_virtualModule.js @@ -0,0 +1,3 @@ +const virtual = "Virtual!"; + +export { virtual }; diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/es/main.js b/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/es/main.js index 6bb75abdf27..96f7b331789 100644 --- a/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/es/main.js +++ b/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/es/main.js @@ -1,3 +1,3 @@ -import { virtual } from './_virtual/_virtualModule'; +import { virtual } from './_virtual/_virtualModule.js'; assert.equal(virtual, 'Virtual!'); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/system/_virtual/_virtualModule.js b/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/system/_virtual/_virtualModule.js new file mode 100644 index 00000000000..51cfccb8a68 --- /dev/null +++ b/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/system/_virtual/_virtualModule.js @@ -0,0 +1,10 @@ +System.register([], (function (exports) { + 'use strict'; + return { + execute: (function () { + + const virtual = exports('virtual', "Virtual!"); + + }) + }; +})); diff --git a/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/system/main.js b/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/system/main.js index eed2c557e47..f92fd60397b 100644 --- a/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/system/main.js +++ b/test/chunking-form/samples/preserve-modules-virtual-modules/_expected/system/main.js @@ -1,4 +1,4 @@ -System.register(['./_virtual/_virtualModule'], (function () { +System.register(['./_virtual/_virtualModule.js'], (function () { 'use strict'; var virtual; return { diff --git a/test/function/samples/deprecated/preserveModules/virtual-modules/_config.js b/test/function/samples/deprecated/preserveModules/virtual-modules/_config.js index 47d4dfa4303..ece89c970b4 100644 --- a/test/function/samples/deprecated/preserveModules/virtual-modules/_config.js +++ b/test/function/samples/deprecated/preserveModules/virtual-modules/_config.js @@ -26,7 +26,7 @@ module.exports = { return bundle.generate({ format: 'es' }).then(generated => assert.deepEqual( generated.output.map(chunk => chunk.fileName), - ['main.js', '_virtual/_virtualModule', 'lib/lib.js'] + ['main.js', '_virtual/_virtualModule.js', 'lib/lib.js'] ) ); } diff --git a/test/function/samples/preserve-modules/virtual-modules/_config.js b/test/function/samples/preserve-modules/virtual-modules/_config.js index 8965977575f..6749601a266 100644 --- a/test/function/samples/preserve-modules/virtual-modules/_config.js +++ b/test/function/samples/preserve-modules/virtual-modules/_config.js @@ -23,7 +23,7 @@ module.exports = { return bundle.generate({ format: 'es', preserveModules: true }).then(generated => assert.deepEqual( generated.output.map(chunk => chunk.fileName), - ['main.js', '_virtual/_virtualModule', 'lib/lib.js'] + ['main.js', '_virtual/_virtualModule.js', 'lib/lib.js'] ) ); } diff --git a/test/misc/bundle-information.js b/test/misc/bundle-information.js index e45ac2fa5e3..69c24e226ce 100644 --- a/test/misc/bundle-information.js +++ b/test/misc/bundle-information.js @@ -480,7 +480,12 @@ describe('The bundle object', () => { .then(({ output }) => { assert.deepEqual( output.map(chunk => chunk.fileName), - ['_virtual/input', '_virtual/dynamic1', '_virtual/other', '_virtual/dynamic2'], + [ + '_virtual/input.js', + '_virtual/dynamic1.js', + '_virtual/other.js', + '_virtual/dynamic2.js' + ], 'fileName' ); assert.deepEqual( @@ -491,9 +496,9 @@ describe('The bundle object', () => { assert.deepEqual( output.map(chunk => chunk.code), [ - `import { other } from './other'; + `import { other } from './other.js'; -console.log(other);Promise.all([import('./dynamic1'), import('./dynamic2')]).then(([{dynamic1}, {dynamic2}]) => console.log(dynamic1, dynamic2));\n`, +console.log(other);Promise.all([import('./dynamic1.js'), import('./dynamic2.js')]).then(([{dynamic1}, {dynamic2}]) => console.log(dynamic1, dynamic2));\n`, 'const dynamic1 = "dynamic1";\n\nexport { dynamic1 };\n', 'const other = "other";\n\nexport { other };\n', 'const dynamic2 = "dynamic2";\n\nexport { dynamic2 };\n' @@ -507,12 +512,12 @@ console.log(other);Promise.all([import('./dynamic1'), import('./dynamic2')]).the ); assert.deepEqual( output.map(chunk => chunk.imports), - [['_virtual/other'], [], [], []], + [['_virtual/other.js'], [], [], []], 'imports' ); assert.deepEqual( output.map(chunk => chunk.importedBindings), - [{ '_virtual/other': ['other'] }, {}, {}, {}], + [{ '_virtual/other.js': ['other'] }, {}, {}, {}], 'importedBindings' ); assert.deepEqual( @@ -522,7 +527,7 @@ console.log(other);Promise.all([import('./dynamic1'), import('./dynamic2')]).the ); assert.deepEqual( output.map(chunk => chunk.dynamicImports), - [['_virtual/dynamic1', '_virtual/dynamic2'], [], [], []], + [['_virtual/dynamic1.js', '_virtual/dynamic2.js'], [], [], []], 'dynamicImports' ); assert.deepEqual( @@ -530,7 +535,7 @@ console.log(other);Promise.all([import('./dynamic1'), import('./dynamic2')]).the [ { input: { - code: "console.log(other);Promise.all([import('./dynamic1'), import('./dynamic2')]).then(([{dynamic1}, {dynamic2}]) => console.log(dynamic1, dynamic2));", + code: "console.log(other);Promise.all([import('./dynamic1.js'), import('./dynamic2.js')]).then(([{dynamic1}, {dynamic2}]) => console.log(dynamic1, dynamic2));", originalLength: 169, removedExports: [], renderedExports: [],