From bae5b258dffffe6c4f95cc1f9e55e85358bb7079 Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Wed, 29 May 2019 09:01:08 +0200 Subject: [PATCH] Use require.toUrl instead of concatenating strings to resolve files for AMD --- src/utils/defaultPlugin.ts | 6 ++---- .../samples/asset-emission/_expected/amd/main.js | 4 ++-- .../samples/asset-emission/_expected/amd/nested/chunk2.js | 4 ++-- .../chunking-compact/_expected/system/generated-chunk.js | 2 +- .../samples/chunking-compact/_expected/system/main1.js | 2 +- .../samples/chunking-compact/_expected/system/main2.js | 2 +- .../samples/configure-asset-url/_expected/amd/main.js | 4 ++-- .../configure-asset-url/_expected/amd/nested/chunk.js | 2 +- .../samples/configure-file-url/_expected/amd/main.js | 6 +++--- .../configure-file-url/_expected/amd/nested/chunk2.js | 2 +- .../emit-chunk-worker/_expected/amd/chunks/nested.js | 4 ++-- .../samples/emit-chunk-worker/_expected/amd/main.js | 4 ++-- .../samples/emit-chunk-worklet/_expected/amd/main.js | 4 ++-- .../reexport-from-entry/_expected/system/generated-chunk.js | 2 +- .../samples/reexport-from-entry/_expected/system/main.js | 2 +- .../reexport-from-entry/_expected/system/otherEntry.js | 2 +- test/form/samples/asset-emission/_expected/amd.js | 4 ++-- test/form/samples/configure-asset-url/_expected/amd.js | 4 ++-- test/form/samples/configure-file-url/_expected/amd.js | 4 ++-- 19 files changed, 31 insertions(+), 33 deletions(-) diff --git a/src/utils/defaultPlugin.ts b/src/utils/defaultPlugin.ts index 8acd9298b96..1da30300ae7 100644 --- a/src/utils/defaultPlugin.ts +++ b/src/utils/defaultPlugin.ts @@ -11,8 +11,6 @@ export function getRollupDefaultPlugin(preserveSymlinks: boolean): Plugin { return readFileSync(id, 'utf-8'); }, resolveFileUrl({ relativePath, format }) { - // TODO consider using improved AMD relative imports: - // https://requirejs.org/docs/api.html#modulenotes-urls return relativeUrlMechanisms[format](relativePath); }, resolveImportMeta(prop, { chunkId, format }) { @@ -114,7 +112,7 @@ const getRelativeUrlFromDocument = (relativePath: string) => ); const relativeUrlMechanisms: Record string> = { - amd: relativePath => getResolveUrl(`module.uri + '/../${relativePath}', document.baseURI`), + amd: relativePath => getResolveUrl(`require.toUrl('${relativePath}'), document.baseURI`), cjs: relativePath => `(typeof document === 'undefined' ? ${getResolveUrl( `'file:' + __dirname + '/${relativePath}'`, @@ -139,7 +137,7 @@ export const accessedMetaUrlGlobals = { }; export const accessedFileUrlGlobals = { - amd: ['document', 'module', 'URL'], + amd: ['document', 'require', 'URL'], cjs: ['document', 'require', 'URL'], iife: ['document', 'URL'], system: ['module', 'URL'], diff --git a/test/chunking-form/samples/asset-emission/_expected/amd/main.js b/test/chunking-form/samples/asset-emission/_expected/amd/main.js index ecd1444b38d..ad49a69bf83 100644 --- a/test/chunking-form/samples/asset-emission/_expected/amd/main.js +++ b/test/chunking-form/samples/asset-emission/_expected/amd/main.js @@ -1,6 +1,6 @@ -define(['module', 'require', './nested/chunk'], function (module, require, __chunk_1) { 'use strict'; +define(['require', './nested/chunk'], function (require, __chunk_1) { 'use strict'; - var logo = new URL(module.uri + '/../assets/logo1-25253976.svg', document.baseURI).href; + var logo = new URL(require.toUrl('assets/logo1-25253976.svg'), document.baseURI).href; __chunk_1.showImage(logo); new Promise(function (resolve, reject) { require(['./nested/chunk2'], resolve, reject) }); diff --git a/test/chunking-form/samples/asset-emission/_expected/amd/nested/chunk2.js b/test/chunking-form/samples/asset-emission/_expected/amd/nested/chunk2.js index c3c0a8c5af7..ad229a9409e 100644 --- a/test/chunking-form/samples/asset-emission/_expected/amd/nested/chunk2.js +++ b/test/chunking-form/samples/asset-emission/_expected/amd/nested/chunk2.js @@ -1,6 +1,6 @@ -define(['module', './chunk'], function (module, __chunk_1) { 'use strict'; +define(['require', './chunk'], function (require, __chunk_1) { 'use strict'; - var logo = new URL(module.uri + '/../../assets/logo2-25253976.svg', document.baseURI).href; + var logo = new URL(require.toUrl('../assets/logo2-25253976.svg'), document.baseURI).href; __chunk_1.showImage(logo); diff --git a/test/chunking-form/samples/chunking-compact/_expected/system/generated-chunk.js b/test/chunking-form/samples/chunking-compact/_expected/system/generated-chunk.js index 6b5d7f24567..c698a9a6a1d 100644 --- a/test/chunking-form/samples/chunking-compact/_expected/system/generated-chunk.js +++ b/test/chunking-form/samples/chunking-compact/_expected/system/generated-chunk.js @@ -3,4 +3,4 @@ System.register([],function(exports){'use strict';return{execute:function(){expo }function fn$1 () { fn(); console.log('dep2 fn'); -}}}}); +}}}}); \ No newline at end of file diff --git a/test/chunking-form/samples/chunking-compact/_expected/system/main1.js b/test/chunking-form/samples/chunking-compact/_expected/system/main1.js index 7f0f9e9f4de..f8b5e0df27e 100644 --- a/test/chunking-form/samples/chunking-compact/_expected/system/main1.js +++ b/test/chunking-form/samples/chunking-compact/_expected/system/main1.js @@ -5,4 +5,4 @@ System.register(['./generated-chunk.js'],function(exports){'use strict';var fn$1 fn(); fn$1(); } -} exports('default', Main1);}}}); +} exports('default', Main1);}}}); \ No newline at end of file diff --git a/test/chunking-form/samples/chunking-compact/_expected/system/main2.js b/test/chunking-form/samples/chunking-compact/_expected/system/main2.js index cd32dd709db..17ddf05a6a4 100644 --- a/test/chunking-form/samples/chunking-compact/_expected/system/main2.js +++ b/test/chunking-form/samples/chunking-compact/_expected/system/main2.js @@ -9,4 +9,4 @@ System.register(['./generated-chunk.js','external'],function(exports){'use stric fn$1(); fn$3(); } -} exports('default', Main2);}}}); +} exports('default', Main2);}}}); \ No newline at end of file diff --git a/test/chunking-form/samples/configure-asset-url/_expected/amd/main.js b/test/chunking-form/samples/configure-asset-url/_expected/amd/main.js index 47bef05d750..b521ad4b012 100644 --- a/test/chunking-form/samples/configure-asset-url/_expected/amd/main.js +++ b/test/chunking-form/samples/configure-asset-url/_expected/amd/main.js @@ -1,8 +1,8 @@ -define(['module', 'require'], function (module, require) { 'use strict'; +define(['require'], function (require) { 'use strict'; var asset2 = 'resolved'; - var asset3 = new URL(module.uri + '/../assets/asset-unresolved-9548436d.txt', document.baseURI).href; + var asset3 = new URL(require.toUrl('assets/asset-unresolved-9548436d.txt'), document.baseURI).href; new Promise(function (resolve, reject) { require(['./nested/chunk'], resolve, reject) }).then(result => console.log(result, asset2, asset3)); diff --git a/test/chunking-form/samples/configure-asset-url/_expected/amd/nested/chunk.js b/test/chunking-form/samples/configure-asset-url/_expected/amd/nested/chunk.js index bdbd7f73c64..2a8c640ebaf 100644 --- a/test/chunking-form/samples/configure-asset-url/_expected/amd/nested/chunk.js +++ b/test/chunking-form/samples/configure-asset-url/_expected/amd/nested/chunk.js @@ -1,4 +1,4 @@ -define(['module', 'exports'], function (module, exports) { 'use strict'; +define(['require', 'exports'], function (require, exports) { 'use strict'; var solved = 'nested/chunk.js:solved:assets/asset-solved-9b321da2.txt:../assets/asset-solved-9b321da2.txt'; diff --git a/test/chunking-form/samples/configure-file-url/_expected/amd/main.js b/test/chunking-form/samples/configure-file-url/_expected/amd/main.js index 3877c193000..75ab2148e8f 100644 --- a/test/chunking-form/samples/configure-file-url/_expected/amd/main.js +++ b/test/chunking-form/samples/configure-file-url/_expected/amd/main.js @@ -1,10 +1,10 @@ -define(['module', 'require'], function (module, require) { 'use strict'; +define(['require'], function (require) { 'use strict'; const asset = 'resolved'; const chunk = 'resolved'; - const asset$1 = new URL(module.uri + '/../assets/asset-unresolved-9548436d.txt', document.baseURI).href; - const chunk$1 = new URL(module.uri + '/../nested/chunk.js', document.baseURI).href; + const asset$1 = new URL(require.toUrl('assets/asset-unresolved-9548436d.txt'), document.baseURI).href; + const chunk$1 = new URL(require.toUrl('nested/chunk.js'), document.baseURI).href; new Promise(function (resolve, reject) { require(['./nested/chunk2'], resolve, reject) }).then(result => console.log(result, chunk, chunk$1, asset, asset$1)); diff --git a/test/chunking-form/samples/configure-file-url/_expected/amd/nested/chunk2.js b/test/chunking-form/samples/configure-file-url/_expected/amd/nested/chunk2.js index 6adfcf6b0fe..67a303be630 100644 --- a/test/chunking-form/samples/configure-file-url/_expected/amd/nested/chunk2.js +++ b/test/chunking-form/samples/configure-file-url/_expected/amd/nested/chunk2.js @@ -1,4 +1,4 @@ -define(['module', 'exports'], function (module, exports) { 'use strict'; +define(['require', 'exports'], function (require, exports) { 'use strict'; const asset = 'chunkId=nested/chunk2.js:moduleId=solved:fileName=assets/asset-solved-9b321da2.txt:format=amd:relativePath=../assets/asset-solved-9b321da2.txt:assetReferenceId=6296c678:chunkReferenceId=null' const chunk = 'chunkId=nested/chunk2.js:moduleId=solved:fileName=nested/chunk.js:format=amd:relativePath=chunk.js:assetReferenceId=null:chunkReferenceId=f6c25ae7' diff --git a/test/chunking-form/samples/emit-chunk-worker/_expected/amd/chunks/nested.js b/test/chunking-form/samples/emit-chunk-worker/_expected/amd/chunks/nested.js index 9ea6f6a2f08..af95071095a 100644 --- a/test/chunking-form/samples/emit-chunk-worker/_expected/amd/chunks/nested.js +++ b/test/chunking-form/samples/emit-chunk-worker/_expected/amd/chunks/nested.js @@ -1,7 +1,7 @@ -define(['module', 'exports'], function (module, exports) { 'use strict'; +define(['require', 'exports'], function (require, exports) { 'use strict'; const getWorkerMessage = () => new Promise(resolve => { - const worker = new Worker(new URL(module.uri + '/../worker-proxy.js', document.baseURI).href); + const worker = new Worker(new URL(require.toUrl('worker-proxy.js'), document.baseURI).href); worker.onmessage = resolve; }); diff --git a/test/chunking-form/samples/emit-chunk-worker/_expected/amd/main.js b/test/chunking-form/samples/emit-chunk-worker/_expected/amd/main.js index 287f2f571b1..f4916ec626e 100644 --- a/test/chunking-form/samples/emit-chunk-worker/_expected/amd/main.js +++ b/test/chunking-form/samples/emit-chunk-worker/_expected/amd/main.js @@ -1,7 +1,7 @@ -define(['module', 'require', './chunks/chunk'], function (module, require, __chunk_1) { 'use strict'; +define(['require', './chunks/chunk'], function (require, __chunk_1) { 'use strict'; const getWorkerMessage = () => new Promise(resolve => { - const worker = new Worker(new URL(module.uri + '/../chunks/worker-proxy.js', document.baseURI).href); + const worker = new Worker(new URL(require.toUrl('chunks/worker-proxy.js'), document.baseURI).href); worker.onmessage = resolve; }); diff --git a/test/chunking-form/samples/emit-chunk-worklet/_expected/amd/main.js b/test/chunking-form/samples/emit-chunk-worklet/_expected/amd/main.js index 7cdcf91f2ac..c8445b3eae1 100644 --- a/test/chunking-form/samples/emit-chunk-worklet/_expected/amd/main.js +++ b/test/chunking-form/samples/emit-chunk-worklet/_expected/amd/main.js @@ -1,6 +1,6 @@ -define(['module', './chunks/chunk'], function (module, __chunk_1) { 'use strict'; +define(['require', './chunks/chunk'], function (require, __chunk_1) { 'use strict'; - CSS.paintWorklet.addModule(new URL(module.uri + '/../chunks/worklet.js', document.baseURI).href); + CSS.paintWorklet.addModule(new URL(require.toUrl('chunks/worklet.js'), document.baseURI).href); document.body.innerHTML += `

color: ${__chunk_1.color}, size: ${__chunk_1.size}

`; diff --git a/test/chunking-form/samples/reexport-from-entry/_expected/system/generated-chunk.js b/test/chunking-form/samples/reexport-from-entry/_expected/system/generated-chunk.js index 7ef5a4a89f9..1755a56fb29 100644 --- a/test/chunking-form/samples/reexport-from-entry/_expected/system/generated-chunk.js +++ b/test/chunking-form/samples/reexport-from-entry/_expected/system/generated-chunk.js @@ -1,4 +1,4 @@ -System.register([], function (exports, module) { +System.register([], function (exports) { 'use strict'; return { execute: function () { diff --git a/test/chunking-form/samples/reexport-from-entry/_expected/system/main.js b/test/chunking-form/samples/reexport-from-entry/_expected/system/main.js index 250931c3704..e606d15fab6 100644 --- a/test/chunking-form/samples/reexport-from-entry/_expected/system/main.js +++ b/test/chunking-form/samples/reexport-from-entry/_expected/system/main.js @@ -1,4 +1,4 @@ -System.register(['./generated-chunk.js'], function (exports, module) { +System.register(['./generated-chunk.js'], function (exports) { 'use strict'; return { setters: [function (module) { diff --git a/test/chunking-form/samples/reexport-from-entry/_expected/system/otherEntry.js b/test/chunking-form/samples/reexport-from-entry/_expected/system/otherEntry.js index e3742078564..f2975a5a236 100644 --- a/test/chunking-form/samples/reexport-from-entry/_expected/system/otherEntry.js +++ b/test/chunking-form/samples/reexport-from-entry/_expected/system/otherEntry.js @@ -1,4 +1,4 @@ -System.register(['./generated-chunk.js'], function (exports, module) { +System.register(['./generated-chunk.js'], function (exports) { 'use strict'; return { setters: [function (module) { diff --git a/test/form/samples/asset-emission/_expected/amd.js b/test/form/samples/asset-emission/_expected/amd.js index e981d0ded96..38068b433f4 100644 --- a/test/form/samples/asset-emission/_expected/amd.js +++ b/test/form/samples/asset-emission/_expected/amd.js @@ -1,6 +1,6 @@ -define(['module'], function (module) { 'use strict'; +define(['require'], function (require) { 'use strict'; - var logo = new URL(module.uri + '/../assets/logo-25253976.svg', document.baseURI).href; + var logo = new URL(require.toUrl('assets/logo-25253976.svg'), document.baseURI).href; function showImage(url) { console.log(url); diff --git a/test/form/samples/configure-asset-url/_expected/amd.js b/test/form/samples/configure-asset-url/_expected/amd.js index c8302dda1c6..f1ee229dca0 100644 --- a/test/form/samples/configure-asset-url/_expected/amd.js +++ b/test/form/samples/configure-asset-url/_expected/amd.js @@ -1,10 +1,10 @@ -define(['module'], function (module) { 'use strict'; +define(['require'], function (require) { 'use strict'; var asset1 = 'amd.js:solved:assets/asset-solved-9b321da2.txt:assets/asset-solved-9b321da2.txt'; var asset2 = 'resolved'; - var asset3 = new URL(module.uri + '/../assets/asset-unresolved-9548436d.txt', document.baseURI).href; + var asset3 = new URL(require.toUrl('assets/asset-unresolved-9548436d.txt'), document.baseURI).href; console.log(asset1, asset2, asset3); diff --git a/test/form/samples/configure-file-url/_expected/amd.js b/test/form/samples/configure-file-url/_expected/amd.js index 4f17cacf559..f11619a0acf 100644 --- a/test/form/samples/configure-file-url/_expected/amd.js +++ b/test/form/samples/configure-file-url/_expected/amd.js @@ -1,10 +1,10 @@ -define(['module'], function (module) { 'use strict'; +define(['require'], function (require) { 'use strict'; var asset1 = 'chunkId=amd.js:moduleId=solved:fileName=assets/asset-solved-9b321da2.txt:format=amd:relativePath=assets/asset-solved-9b321da2.txt:assetReferenceId=6296c678:chunkReferenceId=null'; var asset2 = 'resolved'; - var asset3 = new URL(module.uri + '/../assets/asset-unresolved-9548436d.txt', document.baseURI).href; + var asset3 = new URL(require.toUrl('assets/asset-unresolved-9548436d.txt'), document.baseURI).href; console.log(asset1, asset2, asset3);