mirror of
https://github.com/openharmony/developtools_ace-js2bundle.git
synced 2026-07-21 06:05:27 -04:00
fix common module cache performance. Signed-off-by: lihong <lihong67@huawei.com> Change-Id: I32a82c9b860f622fb3bf70f779771a252a0f9f4e
This commit is contained in:
@@ -43,12 +43,7 @@ class ResultStates {
|
||||
this.options = options;
|
||||
GLOBAL_COMMON_MODULE_CACHE = `
|
||||
globalThis["__common_module_cache__${process.env.hashProjectPath}"] =` +
|
||||
` globalThis["__common_module_cache__${process.env.hashProjectPath}"] || {};
|
||||
globalThis["webpackChunk${process.env.hashProjectPath}"].forEach((item)=> {
|
||||
Object.keys(item[1]).forEach((element) => {
|
||||
globalThis["__common_module_cache__${process.env.hashProjectPath}"][element] = null;
|
||||
})
|
||||
});`;
|
||||
` globalThis["__common_module_cache__${process.env.hashProjectPath}"] || {};`;
|
||||
}
|
||||
|
||||
apply(compiler) {
|
||||
@@ -142,14 +137,24 @@ class ResultStates {
|
||||
`[moduleId]: null;\n` +
|
||||
`if (commonCachedModule) { return commonCachedModule.exports; }\n` +
|
||||
source.replace('// Execute the module function',
|
||||
`function isCommonModue(moduleId) {
|
||||
if (globalThis["webpackChunk${process.env.hashProjectPath}"]) {
|
||||
const length = globalThis["webpackChunk${process.env.hashProjectPath}"].length;
|
||||
switch (length) {
|
||||
case 1:
|
||||
return globalThis["webpackChunk${process.env.hashProjectPath}"][0][1][moduleId];
|
||||
case 2:
|
||||
return globalThis["webpackChunk${process.env.hashProjectPath}"][0][1][moduleId] ||
|
||||
globalThis["webpackChunk${process.env.hashProjectPath}"][1][1][moduleId];
|
||||
}
|
||||
}
|
||||
return undefined;
|
||||
}\n` +
|
||||
`if (globalThis["__common_module_cache__${process.env.hashProjectPath}"]` +
|
||||
` && moduleId.indexOf("?name=") < 0 && ` +
|
||||
`Object.keys(globalThis["__common_module_cache__${process.env.hashProjectPath}"])` +
|
||||
`.indexOf(moduleId) >= 0) {\n` +
|
||||
` && moduleId.indexOf("?name=") < 0 && isCommonModue(moduleId)) {\n` +
|
||||
` globalThis["__common_module_cache__${process.env.hashProjectPath}"]` +
|
||||
`[moduleId] = module;\n}`);
|
||||
}
|
||||
);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user