From 28d74dcc9f2faa16c8cd65e0e86bc28dbbac4b00 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Wed, 15 May 2019 19:12:09 -0400 Subject: [PATCH] Use Reify to compile dynamic import(...). --- tools/isobuild/import-scanner.js | 4 +++- tools/static-assets/server/runtime.js | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/tools/isobuild/import-scanner.js b/tools/isobuild/import-scanner.js index 917b65edee..323e2eaac5 100644 --- a/tools/isobuild/import-scanner.js +++ b/tools/isobuild/import-scanner.js @@ -66,7 +66,9 @@ function stripHashBang(dataString) { } const reifyCompileWithCache = wrap(function ({ dataString }) { - return reifyCompile(stripHashBang(dataString)).code; + return reifyCompile(stripHashBang(dataString), { + dynamicImport: true, + }).code; }, { makeCacheKey({ hash }) { return hash; diff --git a/tools/static-assets/server/runtime.js b/tools/static-assets/server/runtime.js index 3d521e57d0..7faf43f6e6 100644 --- a/tools/static-assets/server/runtime.js +++ b/tools/static-assets/server/runtime.js @@ -18,3 +18,8 @@ Mp.load = function (filename) { } return result; }; + +const resolved = Promise.resolve(); +Mp.dynamicImport = function (id) { + return resolved.then(() => require(id)); +};