diff options
Diffstat (limited to 'config/webpack/loader/arrange-shared-module-loader.js')
| -rw-r--r-- | config/webpack/loader/arrange-shared-module-loader.js | 37 |
1 files changed, 27 insertions, 10 deletions
diff --git a/config/webpack/loader/arrange-shared-module-loader.js b/config/webpack/loader/arrange-shared-module-loader.js index 9e21b23..1669a64 100644 --- a/config/webpack/loader/arrange-shared-module-loader.js +++ b/config/webpack/loader/arrange-shared-module-loader.js @@ -5,22 +5,39 @@ const { ImportManager } = require("import-manager"); const sharedModules = webpackRequire("utils/shared-modules.js"); module.exports = function(source) { - const { sortedSharedModules } = this.getOptions(); - const manager = new ImportManager(source); + const currentSharedModuleName = path.basename(this.resourcePath.substring(0, this.resourcePath.length - 3)); - for (const unit of manager.imports.es6.units) { - const moduleIndex = sharedModules.indexOf(unit.module.name); + if (sharedModules.includes(currentSharedModuleName)) { + const { sortedSharedModules } = this.getOptions(); + const manager = new ImportManager(source); + const modulesToBeIncluded = []; - if (moduleIndex >= 0) { - const currentSharedModuleName = sharedModules[moduleIndex]; + for (const unit of manager.imports.es6.units) { + const moduleIndex = sharedModules.indexOf(unit.module.name); - if (!sortedSharedModules.includes(currentSharedModuleName)) { - sortedSharedModules.push(currentSharedModuleName); + if (moduleIndex >= 0) { + const currentSharedModuleName = sharedModules[moduleIndex]; + + if (!(sortedSharedModules.includes(currentSharedModuleName) || modulesToBeIncluded.includes(currentSharedModuleName))) { + modulesToBeIncluded.push(currentSharedModuleName); + } } } - } - sortedSharedModules.push(path.basename(this.resourcePath.substring(0, this.resourcePath.length - 3))); + const currentModuleIndex = sortedSharedModules.indexOf(currentSharedModuleName); + + if (currentModuleIndex >= 0) { + for (const sharedModule of modulesToBeIncluded) { + sortedSharedModules.splice(currentModuleIndex, 0, sharedModule); + } + } else { + for (const sharedModule of modulesToBeIncluded) { + sortedSharedModules.push(sharedModule); + } + + sortedSharedModules.push(currentSharedModuleName); + } + } return source; }; |
