aboutsummaryrefslogtreecommitdiffstats
path: root/config/webpack/loader/arrange-shared-module-loader.js
diff options
context:
space:
mode:
Diffstat (limited to 'config/webpack/loader/arrange-shared-module-loader.js')
-rw-r--r--config/webpack/loader/arrange-shared-module-loader.js37
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;
};