diff options
Diffstat (limited to 'config/webpack/loader/arrange-shared-module-loader.js')
| -rw-r--r-- | config/webpack/loader/arrange-shared-module-loader.js | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/config/webpack/loader/arrange-shared-module-loader.js b/config/webpack/loader/arrange-shared-module-loader.js index 2265185..63fd62d 100644 --- a/config/webpack/loader/arrange-shared-module-loader.js +++ b/config/webpack/loader/arrange-shared-module-loader.js @@ -1,8 +1,18 @@ import path from "path"; + import { ImportManager } from "import-manager"; import sharedModules from "../utils/shared-modules.js"; +/** + * Webpack loader that arranges shared modules in dependency order. + * As each shared module is processed, its own shared-module dependencies + * are inserted before it in the global `sortedSharedModules` array so that + * the final output respects the import graph. + * + * @param {string} source - The source code of the current module. + * @returns {string} The unmodified source (this loader is side-effect only). + */ export default function(source) { const currentSharedModuleName = path.basename(this.resourcePath.substring(0, this.resourcePath.length - 3)); @@ -17,7 +27,11 @@ export default function(source) { if (moduleIndex >= 0) { const currentSharedModuleName = sharedModules[moduleIndex]; - if (!(sortedSharedModules.includes(currentSharedModuleName) || modulesToBeIncluded.includes(currentSharedModuleName))) { + const alreadyIncluded = ( + sortedSharedModules.includes(currentSharedModuleName) + || modulesToBeIncluded.includes(currentSharedModuleName)); + + if (!alreadyIncluded) { modulesToBeIncluded.push(currentSharedModuleName); } } |
