From ad7a9ddf2eaca40d374b2f88041dc28a8bc9da18 Mon Sep 17 00:00:00 2001 From: laibo102 Date: Thu, 3 Mar 2022 11:00:38 +0800 Subject: [PATCH 1/5] laibo2@huawei.com Signed-off-by: laibo102 Change-Id: Ia02086d8274bf38a39a1bb90213cfcc7bdf16603 --- compiler/main.js | 41 +++++++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/compiler/main.js b/compiler/main.js index 9762056fa..7481d0ec3 100644 --- a/compiler/main.js +++ b/compiler/main.js @@ -57,6 +57,7 @@ function initProjectConfig(projectConfig) { process.env.aceSuperVisualPath projectConfig.hashProjectPath = projectConfig.hashProjectPath || hashProjectPath(projectConfig.projectPath) + projectConfig.aceWorkerPath = projectConfig.aceWorkerPath || process.env.aceWorkerPath; } function loadEntryObj(projectConfig) { @@ -190,17 +191,41 @@ function setEntrance(abilityConfig, abilityPages) { } function loadWorker(projectConfig) { - const workerPath = path.resolve(projectConfig.projectPath, WORKERS_DIR); - if (fs.existsSync(workerPath)) { - const workerFiles = []; - readFile(workerPath, workerFiles); - workerFiles.forEach((item) => { - if (/\.(ts|js)$/.test(item)) { - const relativePath = path.relative(workerPath, item).replace(/\.(ts|js)$/, ''); - projectConfig.entryObj[`./${WORKERS_DIR}/` + relativePath] = item; + if (validateWorkOption()) { + const workerConfig = JSON.parse(fs.readFileSync(projectConfig.aceWorkPath).toString()); + workerConfig.workers.forEach(worker => { + const relativePath = path.ralative(projectConfig.projectPath, worker); + if (filterWorker(relativePath)) { + projectConfig.entryObj[relativePath.replace(/\.(ts|js)$/,'')] = worker; } }) + } else { + const workerPath = path.resolve(projectConfig.projectPath, WORKERS_DIR); + if (fs.existsSync(workerPath)) { + const workerFiles = []; + readFile(workerPath, workerFiles); + workerFiles.forEach((item) => { + if (/\.(ts|js)$/.test(item)) { + const relativePath = path.relative(workerPath, item).replace(/\.(ts|js)$/, ''); + projectConfig.entryObj[`./${WORKERS_DIR}/` + relativePath] = item; + } + }) + } + } +} + +function validateWorkOption() { + if (projectConfig.aceWorkPath && fs.existsSync(projectConfig.aceWorkPath)) { + const workerConfig = JSON.parse(fs.readFileSync(projectConfig.aceWorkPath).toString()); + if(workerConfig.workers) { + return true; + } } + return false; +} + +function filterWorker(workerPath) { + return /\.(ts|js)$/.test(workerPath) && !/^\.\./.test(workerPath); } ;(function initSystemResource() { -- Gitee From 29e47dbcff64cc7ed37f7e5ca4c76b9c59fa3d85 Mon Sep 17 00:00:00 2001 From: laibo102 Date: Thu, 3 Mar 2022 16:57:19 +0800 Subject: [PATCH 2/5] laibo2@huawei.com Signed-off-by: laibo102 Change-Id: I6c4712fe088438c73a223b89cc8c59aae9a426ce --- compiler/main.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/compiler/main.js b/compiler/main.js index 7481d0ec3..3d81c251e 100644 --- a/compiler/main.js +++ b/compiler/main.js @@ -57,7 +57,7 @@ function initProjectConfig(projectConfig) { process.env.aceSuperVisualPath projectConfig.hashProjectPath = projectConfig.hashProjectPath || hashProjectPath(projectConfig.projectPath) - projectConfig.aceWorkerPath = projectConfig.aceWorkerPath || process.env.aceWorkerPath; + projectConfig.aceBuildJson = projectConfig.aceBuildJson || process.env.aceBuildJson; } function loadEntryObj(projectConfig) { @@ -192,7 +192,7 @@ function setEntrance(abilityConfig, abilityPages) { function loadWorker(projectConfig) { if (validateWorkOption()) { - const workerConfig = JSON.parse(fs.readFileSync(projectConfig.aceWorkPath).toString()); + const workerConfig = JSON.parse(fs.readFileSync(projectConfig.aceBuildJson).toString()); workerConfig.workers.forEach(worker => { const relativePath = path.ralative(projectConfig.projectPath, worker); if (filterWorker(relativePath)) { @@ -215,8 +215,8 @@ function loadWorker(projectConfig) { } function validateWorkOption() { - if (projectConfig.aceWorkPath && fs.existsSync(projectConfig.aceWorkPath)) { - const workerConfig = JSON.parse(fs.readFileSync(projectConfig.aceWorkPath).toString()); + if (projectConfig.aceBuildJson && fs.existsSync(projectConfig.aceBuildJson)) { + const workerConfig = JSON.parse(fs.readFileSync(projectConfig.aceBuildJson).toString()); if(workerConfig.workers) { return true; } -- Gitee From 00ede3b21de1681fc417d4ca5fcf73801dc0712b Mon Sep 17 00:00:00 2001 From: laibo102 Date: Fri, 4 Mar 2022 14:57:10 +0800 Subject: [PATCH 3/5] laibo2@huawei.com Signed-off-by: laibo102 Change-Id: I4d39a374bc83ade722ffcdfd85828ed4bee869e0 --- compiler/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler/main.js b/compiler/main.js index 3d81c251e..722448b7a 100644 --- a/compiler/main.js +++ b/compiler/main.js @@ -194,7 +194,7 @@ function loadWorker(projectConfig) { if (validateWorkOption()) { const workerConfig = JSON.parse(fs.readFileSync(projectConfig.aceBuildJson).toString()); workerConfig.workers.forEach(worker => { - const relativePath = path.ralative(projectConfig.projectPath, worker); + const relativePath = path.relative(projectConfig.projectPath, worker); if (filterWorker(relativePath)) { projectConfig.entryObj[relativePath.replace(/\.(ts|js)$/,'')] = worker; } -- Gitee From d2c3ed4f6e8229d3a4aa940843abd5f93f5292ec Mon Sep 17 00:00:00 2001 From: laibo102 Date: Fri, 4 Mar 2022 16:48:56 +0800 Subject: [PATCH 4/5] laibo2@huawei.com Signed-off-by: laibo102 Change-Id: I9b424fa92c444ae77f6485d978a04eb1c7b9913c --- compiler/main.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/compiler/main.js b/compiler/main.js index 722448b7a..2ca5730ae 100644 --- a/compiler/main.js +++ b/compiler/main.js @@ -194,6 +194,9 @@ function loadWorker(projectConfig) { if (validateWorkOption()) { const workerConfig = JSON.parse(fs.readFileSync(projectConfig.aceBuildJson).toString()); workerConfig.workers.forEach(worker => { + if (!/\.(ts|js)$/.test(worker)) { + worker += '.ts' + } const relativePath = path.relative(projectConfig.projectPath, worker); if (filterWorker(relativePath)) { projectConfig.entryObj[relativePath.replace(/\.(ts|js)$/,'')] = worker; -- Gitee From ec1d6554a05ce2737cb791ff9d39020b7a8fe9f9 Mon Sep 17 00:00:00 2001 From: laibo102 Date: Fri, 4 Mar 2022 18:21:45 +0800 Subject: [PATCH 5/5] laibo2@huawei.com Signed-off-by: laibo102 Change-Id: Ied216f3587c317cac80fb4b31d9cbed50d645102 --- compiler/main.js | 2 +- compiler/src/compile_info.ts | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/compiler/main.js b/compiler/main.js index 2ca5730ae..372ce24f6 100644 --- a/compiler/main.js +++ b/compiler/main.js @@ -195,7 +195,7 @@ function loadWorker(projectConfig) { const workerConfig = JSON.parse(fs.readFileSync(projectConfig.aceBuildJson).toString()); workerConfig.workers.forEach(worker => { if (!/\.(ts|js)$/.test(worker)) { - worker += '.ts' + worker += '.ts'; } const relativePath = path.relative(projectConfig.projectPath, worker); if (filterWorker(relativePath)) { diff --git a/compiler/src/compile_info.ts b/compiler/src/compile_info.ts index 6e5fdb4f1..4312b7f40 100644 --- a/compiler/src/compile_info.ts +++ b/compiler/src/compile_info.ts @@ -75,7 +75,6 @@ export class ResultStates { private modulePaths: Set = new Set([]); public apply(compiler: Compiler): void { - compiler.hooks.compilation.tap('SourcemapFixer', compilation => { compilation.hooks.afterProcessAssets.tap('SourcemapFixer', assets => { Reflect.ownKeys(assets).forEach(key => { @@ -110,14 +109,14 @@ export class ResultStates { stage: Compilation.PROCESS_ASSETS_STAGE_ADDITIONS }, (assets) => { - const GLOBAL_COMMON_MODULE_CACHE = ` + const GLOBAL_COMMON_MODULE_CACHE = ` globalThis["__common_module_cache__${projectConfig.hashProjectPath}"] =` + ` globalThis["__common_module_cache__${projectConfig.hashProjectPath}"] || {}; globalThis["webpackChunk${projectConfig.hashProjectPath}"].forEach((item)=> { Object.keys(item[1]).forEach((element) => { globalThis["__common_module_cache__${projectConfig.hashProjectPath}"][element] = null; }) - });` + });`; if (assets['commons.js']) { assets['commons.js'] = new CachedSource( -- Gitee