bundler map dependencies
This commit is contained in:
@@ -44,6 +44,7 @@ class BundlerGeneral {
|
||||
* noDuplicates?: boolean,
|
||||
* dependentOn?: string[],
|
||||
* requires?: string[],
|
||||
* mapDependencies?: boolean,
|
||||
* }>,
|
||||
* modulePaths?: Record.<string, string>,
|
||||
* lookupPatterns: string[],
|
||||
@@ -93,6 +94,8 @@ class BundlerGeneral {
|
||||
notBundledMap[name] = data.notBundledModules;
|
||||
result[name] = data.contents;
|
||||
|
||||
console.log(` Chunk '${name}' done, ${data.files.length} files.`)
|
||||
|
||||
if (i === 0 && this.config.mainChunk) {
|
||||
return;
|
||||
}
|
||||
@@ -101,9 +104,13 @@ class BundlerGeneral {
|
||||
|
||||
let bundleFile = this.filePattern.replace('{*}', name);
|
||||
|
||||
let requires = this.config.chunks[name].requires;
|
||||
let requires = [].concat(this.config.chunks[name].requires ?? []);
|
||||
|
||||
if (requires) {
|
||||
if (this.config.chunks[name].mapDependencies) {
|
||||
requires = requires.concat(data.dependencyModules);
|
||||
}
|
||||
|
||||
if (requires.length) {
|
||||
let part = JSON.stringify(requires);
|
||||
|
||||
result[mainName] += `Espo.loader.mapBundleDependencies('${name}', ${part});\n`;
|
||||
@@ -144,12 +151,13 @@ class BundlerGeneral {
|
||||
* files: string[],
|
||||
* templateFiles: string[],
|
||||
* notBundledModules: string[],
|
||||
* dependencyModules: [],
|
||||
* }}
|
||||
*/
|
||||
#bundleChunk(name, isMain, alreadyBundled) {
|
||||
let contents = '';
|
||||
|
||||
let modules = [];
|
||||
let dependencyModules = [];
|
||||
|
||||
let params = this.config.chunks[name];
|
||||
|
||||
@@ -197,6 +205,7 @@ class BundlerGeneral {
|
||||
bundledFiles = data.files;
|
||||
|
||||
notBundledModules = data.notBundledModules;
|
||||
dependencyModules = data.dependencyModules;
|
||||
}
|
||||
|
||||
// Pre-compiled templates turned out to be slower if too many are bundled.
|
||||
@@ -220,6 +229,7 @@ class BundlerGeneral {
|
||||
files: bundledFiles,
|
||||
templateFiles: bundledTemplateFiles,
|
||||
notBundledModules: notBundledModules,
|
||||
dependencyModules: dependencyModules,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
+18
-6
@@ -73,6 +73,7 @@ class Bundler {
|
||||
* files: string[],
|
||||
* modules: string[],
|
||||
* notBundledModules: string[],
|
||||
* dependencyModules: string[],
|
||||
* }}
|
||||
*/
|
||||
bundle(params) {
|
||||
@@ -95,7 +96,7 @@ class Bundler {
|
||||
|
||||
let notBundledModules = [];
|
||||
|
||||
let sortedFiles = this.#sortFiles(
|
||||
let {files: sortedFiles, depModules} = this.#sortFiles(
|
||||
params.name,
|
||||
fullPathFiles,
|
||||
allFiles,
|
||||
@@ -117,6 +118,7 @@ class Bundler {
|
||||
files: sortedFiles,
|
||||
modules: modules,
|
||||
notBundledModules: notBundledModules,
|
||||
dependencyModules: depModules,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -166,7 +168,10 @@ class Bundler {
|
||||
* @param {string[]} ignoreFiles
|
||||
* @param {string[]} notBundledModules
|
||||
* @param {string[]|null} dependentOn
|
||||
* @return {string[]}
|
||||
* @return {{
|
||||
* files: string[],
|
||||
* depModules: string[],
|
||||
* }}
|
||||
*/
|
||||
#sortFiles(
|
||||
name,
|
||||
@@ -207,18 +212,22 @@ class Bundler {
|
||||
});
|
||||
|
||||
let depModules = [];
|
||||
let allDepModules = [];
|
||||
|
||||
modules
|
||||
.forEach(name => {
|
||||
let deps = this.#obtainAllDeps(name, map);
|
||||
|
||||
deps
|
||||
.filter(item => !modules.includes(item))
|
||||
.filter(item => !allDepModules.includes(item))
|
||||
.forEach(item => allDepModules.push(item));
|
||||
|
||||
deps
|
||||
.filter(item => !item.includes('!'))
|
||||
.filter(item => !modules.includes(item))
|
||||
.filter(item => !depModules.includes(item))
|
||||
.forEach(item => {
|
||||
depModules.push(item);
|
||||
});
|
||||
.forEach(item => depModules.push(item));
|
||||
});
|
||||
|
||||
modules = modules
|
||||
@@ -264,7 +273,10 @@ class Bundler {
|
||||
return moduleFileMap[name];
|
||||
});
|
||||
|
||||
return standalonePathList.concat(modulePaths);
|
||||
return {
|
||||
files: standalonePathList.concat(modulePaths),
|
||||
depModules: allDepModules,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user