change
This commit is contained in:
+17
-7
@@ -76,8 +76,10 @@
|
|||||||
this._internalModuleListIsSet = false;
|
this._internalModuleListIsSet = false;
|
||||||
this._bundleFileMap = {};
|
this._bundleFileMap = {};
|
||||||
this._bundleMapping = {};
|
this._bundleMapping = {};
|
||||||
/** @type Object.<string, string[]> */
|
/** @type {Object.<string, string[]>} */
|
||||||
this._bundleDependenciesMap = {};
|
this._bundleDependenciesMap = {};
|
||||||
|
/** @type {Object.<string, boolean>} */
|
||||||
|
this._bundleIsLoadedMap = {};
|
||||||
|
|
||||||
this._addLibsConfigCallCount = 0;
|
this._addLibsConfigCallCount = 0;
|
||||||
this._addLibsConfigCallMaxCount = 2;
|
this._addLibsConfigCallMaxCount = 2;
|
||||||
@@ -507,7 +509,7 @@
|
|||||||
if (name in this._bundleMapping) {
|
if (name in this._bundleMapping) {
|
||||||
let bundleName = this._bundleMapping[name];
|
let bundleName = this._bundleMapping[name];
|
||||||
|
|
||||||
this._addBundle(bundleName).then(() => {
|
this._requireBundle(bundleName).then(() => {
|
||||||
let classObj = this._getClass(name);
|
let classObj = this._getClass(name);
|
||||||
|
|
||||||
if (!classObj) {
|
if (!classObj) {
|
||||||
@@ -606,11 +608,15 @@
|
|||||||
* @param {string} name
|
* @param {string} name
|
||||||
* @return {Promise}
|
* @return {Promise}
|
||||||
*/
|
*/
|
||||||
_addBundle: function (name) {
|
_requireBundle: function (name) {
|
||||||
|
if (this._bundleIsLoadedMap[name]) {
|
||||||
|
return Promise.resolve();
|
||||||
|
}
|
||||||
|
|
||||||
let dependencies = this._bundleDependenciesMap[name] || [];
|
let dependencies = this._bundleDependenciesMap[name] || [];
|
||||||
|
|
||||||
if (!dependencies.length) {
|
if (!dependencies.length) {
|
||||||
return this._addBundleInternal(name);
|
return this._addBundle(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
@@ -618,7 +624,7 @@
|
|||||||
|
|
||||||
Promise.all(list)
|
Promise.all(list)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
return this._addBundleInternal(name);
|
return this._addBundle(name);
|
||||||
})
|
})
|
||||||
.then(() => resolve());
|
.then(() => resolve());
|
||||||
});
|
});
|
||||||
@@ -629,7 +635,7 @@
|
|||||||
* @param {string} name
|
* @param {string} name
|
||||||
* @return {Promise}
|
* @return {Promise}
|
||||||
*/
|
*/
|
||||||
_addBundleInternal: function (name) {
|
_addBundle: function (name) {
|
||||||
let src = this._bundleFileMap[name];
|
let src = this._bundleFileMap[name];
|
||||||
|
|
||||||
if (!src) {
|
if (!src) {
|
||||||
@@ -656,7 +662,11 @@
|
|||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
document.head.appendChild(scriptEl);
|
document.head.appendChild(scriptEl);
|
||||||
|
|
||||||
scriptEl.addEventListener('load', () => resolve());
|
scriptEl.addEventListener('load', () => {
|
||||||
|
this._bundleIsLoadedMap[name] = true;
|
||||||
|
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
+10
-10
@@ -107,7 +107,7 @@
|
|||||||
"templatePatterns": [
|
"templatePatterns": [
|
||||||
"client/modules/crm/res/templates/**/*.tpl"
|
"client/modules/crm/res/templates/**/*.tpl"
|
||||||
],
|
],
|
||||||
"allPatterns": [
|
"lookupPatterns": [
|
||||||
"client/modules/crm/src/**/*.js"
|
"client/modules/crm/src/**/*.js"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -119,8 +119,8 @@
|
|||||||
"dependentOn": [
|
"dependentOn": [
|
||||||
"lib!Summernote"
|
"lib!Summernote"
|
||||||
],
|
],
|
||||||
"libs": ["Summernote"],
|
"requiredLibs": ["Summernote"],
|
||||||
"allPatterns": [
|
"lookupPatterns": [
|
||||||
"client/modules/crm/src/**/*.js"
|
"client/modules/crm/src/**/*.js"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -132,8 +132,8 @@
|
|||||||
"lib!Flotr",
|
"lib!Flotr",
|
||||||
"lib!espo-funnel-chart"
|
"lib!espo-funnel-chart"
|
||||||
],
|
],
|
||||||
"libs": ["Flotr", "espo-funnel-chart"],
|
"requiredLibs": ["Flotr", "espo-funnel-chart"],
|
||||||
"allPatterns": [
|
"lookupPatterns": [
|
||||||
"client/modules/crm/src/**/*.js"
|
"client/modules/crm/src/**/*.js"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -144,8 +144,8 @@
|
|||||||
"dependentOn": [
|
"dependentOn": [
|
||||||
"lib!full-calendar"
|
"lib!full-calendar"
|
||||||
],
|
],
|
||||||
"libs": ["full-calendar"],
|
"requiredLibs": ["full-calendar"],
|
||||||
"allPatterns": [
|
"lookupPatterns": [
|
||||||
"client/modules/crm/src/**/*.js"
|
"client/modules/crm/src/**/*.js"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -156,8 +156,8 @@
|
|||||||
"dependentOn": [
|
"dependentOn": [
|
||||||
"lib!vis"
|
"lib!vis"
|
||||||
],
|
],
|
||||||
"libs": ["vis"],
|
"requiredLibs": ["vis"],
|
||||||
"allPatterns": [
|
"lookupPatterns": [
|
||||||
"client/modules/crm/src/**/*.js"
|
"client/modules/crm/src/**/*.js"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -174,7 +174,7 @@
|
|||||||
"modulePaths": {
|
"modulePaths": {
|
||||||
"crm": "client/modules/crm"
|
"crm": "client/modules/crm"
|
||||||
},
|
},
|
||||||
"allPatterns": [
|
"lookupPatterns": [
|
||||||
"client/src/**/*.js"
|
"client/src/**/*.js"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,14 +36,14 @@ class BundlerGeneral {
|
|||||||
* chunks: Object.<string, {
|
* chunks: Object.<string, {
|
||||||
* files?: string[],
|
* files?: string[],
|
||||||
* patterns?: string[],
|
* patterns?: string[],
|
||||||
* allPatterns?: string[],
|
* lookupPatterns?: string[],
|
||||||
* templatePatterns?: string[],
|
* templatePatterns?: string[],
|
||||||
* noDuplicates?: boolean,
|
* noDuplicates?: boolean,
|
||||||
* dependentOn?: string[],
|
* dependentOn?: string[],
|
||||||
* libs?: string[],
|
* requiredLibs?: string[],
|
||||||
* }>,
|
* }>,
|
||||||
* modulePaths?: Record.<string, string>,
|
* modulePaths?: Record.<string, string>,
|
||||||
* allPatterns: string[],
|
* lookupPatterns: string[],
|
||||||
* order: string[],
|
* order: string[],
|
||||||
* }} config
|
* }} config
|
||||||
* @param {{
|
* @param {{
|
||||||
@@ -97,7 +97,7 @@ class BundlerGeneral {
|
|||||||
|
|
||||||
let bundleFile = this.filePattern.replace('{*}', name);
|
let bundleFile = this.filePattern.replace('{*}', name);
|
||||||
|
|
||||||
let libs = this.config.chunks[name].libs;
|
let libs = this.config.chunks[name].requiredLibs;
|
||||||
|
|
||||||
if (libs) {
|
if (libs) {
|
||||||
let part = JSON.stringify(libs.map(item => 'lib!' + item));
|
let part = JSON.stringify(libs.map(item => 'lib!' + item));
|
||||||
@@ -150,9 +150,9 @@ class BundlerGeneral {
|
|||||||
let params = this.config.chunks[name];
|
let params = this.config.chunks[name];
|
||||||
|
|
||||||
let patterns = params.patterns;
|
let patterns = params.patterns;
|
||||||
let allPatterns = []
|
let lookupPatterns = []
|
||||||
.concat(this.config.allPatterns)
|
.concat(this.config.lookupPatterns)
|
||||||
.concat(params.allPatterns || []);
|
.concat(params.lookupPatterns || []);
|
||||||
|
|
||||||
let bundledFiles = [];
|
let bundledFiles = [];
|
||||||
let bundledTemplateFiles = [];
|
let bundledTemplateFiles = [];
|
||||||
@@ -171,7 +171,7 @@ class BundlerGeneral {
|
|||||||
let data = bundler.bundle({
|
let data = bundler.bundle({
|
||||||
files: params.files,
|
files: params.files,
|
||||||
patterns: patterns,
|
patterns: patterns,
|
||||||
allPatterns: allPatterns,
|
lookupPatterns: lookupPatterns,
|
||||||
libs: this.libs,
|
libs: this.libs,
|
||||||
ignoreFiles: ignoreFiles,
|
ignoreFiles: ignoreFiles,
|
||||||
dependentOn: params.dependentOn,
|
dependentOn: params.dependentOn,
|
||||||
|
|||||||
+3
-3
@@ -57,7 +57,7 @@ class Bundler {
|
|||||||
* @param {{
|
* @param {{
|
||||||
* files?: string[],
|
* files?: string[],
|
||||||
* patterns: string[],
|
* patterns: string[],
|
||||||
* allPatterns?: string[],
|
* lookupPatterns?: string[],
|
||||||
* ignoreFiles?: string[],
|
* ignoreFiles?: string[],
|
||||||
* dependentOn?: string[],
|
* dependentOn?: string[],
|
||||||
* libs: {
|
* libs: {
|
||||||
@@ -79,7 +79,7 @@ class Bundler {
|
|||||||
.concat(this.#obtainFiles(params.patterns, params.files))
|
.concat(this.#obtainFiles(params.patterns, params.files))
|
||||||
.filter(file => !params.ignoreFiles.includes(file));
|
.filter(file => !params.ignoreFiles.includes(file));
|
||||||
|
|
||||||
let allFiles = this.#obtainFiles(params.allPatterns || params.patterns);
|
let allFiles = this.#obtainFiles(params.lookupPatterns || params.patterns);
|
||||||
|
|
||||||
let ignoreLibs = params.libs
|
let ignoreLibs = params.libs
|
||||||
.filter(item => item.key && !item.bundle)
|
.filter(item => item.key && !item.bundle)
|
||||||
@@ -229,7 +229,7 @@ class Bundler {
|
|||||||
|
|
||||||
let modulePaths = modules.map(name => {
|
let modulePaths = modules.map(name => {
|
||||||
if (!moduleFileMap[name]) {
|
if (!moduleFileMap[name]) {
|
||||||
throw Error(`Can't obtain ${name}. Might be missing in allPatterns.`);
|
throw Error(`Can't obtain ${name}. Might be missing in lookupPatterns.`);
|
||||||
}
|
}
|
||||||
|
|
||||||
return moduleFileMap[name];
|
return moduleFileMap[name];
|
||||||
|
|||||||
Reference in New Issue
Block a user