From 8d28b136aa9f0daf7d231c0c9e0c7022c9ce9072 Mon Sep 17 00:00:00 2001 From: songbeibei <3409533354@qq.com> Date: Tue, 4 Jan 2022 18:11:32 +0800 Subject: [PATCH 1/3] 1972617324@qq.com Signed-off-by: songbeibei <3409533354@qq.com> --- compiler/main.js | 30 +++++++++++++++++++++++++----- compiler/src/result_process.ts | 2 +- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/compiler/main.js b/compiler/main.js index c2e4d00be..3ced935ca 100644 --- a/compiler/main.js +++ b/compiler/main.js @@ -33,7 +33,8 @@ const logger = getLogger('ETS'); const staticPreviewPage = process.env.aceStaticPreview; const abilityConfig = { abilityType: process.env.abilityType || 'page', - abilityEntryFile: null + abilityEntryFile: null, + projectAbilityPath: null }; const projectConfig = {}; const resources = { @@ -54,7 +55,8 @@ function initProjectConfig(projectConfig) { function loadEntryObj(projectConfig) { initProjectConfig(projectConfig); - setEntryFile(projectConfig); + const hasAbilityPage = setAbilityFile(projectConfig); + setEntryFile(projectConfig, hasAbilityPage); if(staticPreviewPage) { projectConfig.entryObj['./' + staticPreviewPage] = projectConfig.projectPath + path.sep + @@ -128,15 +130,33 @@ function readPages(ability, pages, configJson) { } } -function setEntryFile(projectConfig) { +function setEntryFile(projectConfig, hasAbilityPage) { const entryFileName = abilityConfig.abilityType === 'page' ? 'app' : abilityConfig.abilityType; const extendFile = entryFileName === 'app' ? '.ets' : '.ts'; abilityConfig.abilityEntryFile = entryFileName + extendFile; const entryFilePath = path.join(projectConfig.projectPath, abilityConfig.abilityEntryFile); if (!fs.existsSync(entryFilePath)) { - throw Error(`\u001b[31m ERROR: missing ${entryFilePath}. \u001b[39m`).message; + if(!hasAbilityPage){ + throw Error(`\u001b[31m ERROR: missing ${entryFilePath}. \u001b[39m`).message; + } + } else { + projectConfig.entryObj[`./${entryFileName}`] = projectConfig.projectPath + `/${abilityConfig.abilityEntryFile}?entry`; + } +} + +function setAbilityFile(projectConfig){ + const index = projectConfig.projectPath.split(path.sep).join('/').lastIndexOf('\/'); + const lastPathName = projectConfig.projectPath.substring(index + 1, projectConfig.projectPath.length); + const projectAbilityPath = path.resolve(projectConfig.projectPath, `${lastPathName}.ts`); + abilityConfig.projectAbilityPath = path.basename(projectAbilityPath); + const AbilityStagePath = path.resolve(projectConfig.projectPath, `../AbilityStage.ts`); + if (fs.existsSync(projectAbilityPath)) { + projectConfig.entryObj[`./${lastPathName}`] = projectAbilityPath + '?entry'; + } + if (fs.existsSync(AbilityStagePath)) { + projectConfig.entryObj['../AbilityStage'] = AbilityStagePath + '?entry'; } - projectConfig.entryObj[`./${entryFileName}`] = projectConfig.projectPath + `/${abilityConfig.abilityEntryFile}?entry`; + return false; } function loadWorker(projectConfig) { diff --git a/compiler/src/result_process.ts b/compiler/src/result_process.ts index 6dcc80657..c703f6926 100644 --- a/compiler/src/result_process.ts +++ b/compiler/src/result_process.ts @@ -59,7 +59,7 @@ module.exports = function resultProcess(source: string, map: any): void { } } const resourcePath: string = path.basename(this.resourcePath); - if (['app.ets', abilityConfig.abilityEntryFile].includes(resourcePath)) { + if (['app.ets', abilityConfig.abilityEntryFile, 'AbilityStage.ts', abilityConfig.projectAbilityPath].includes(resourcePath)) { source = source.replace(/exports\.default/, 'globalThis.exports.default'); } -- Gitee From bd8a955edf6d496be2bbf4fe883ed4581d044368 Mon Sep 17 00:00:00 2001 From: songbeibei <3409533354@qq.com> Date: Tue, 4 Jan 2022 18:19:11 +0800 Subject: [PATCH 2/3] 1972617324@qq.com Signed-off-by: songbeibei <3409533354@qq.com> --- compiler/main.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compiler/main.js b/compiler/main.js index 3ced935ca..6aee24636 100644 --- a/compiler/main.js +++ b/compiler/main.js @@ -144,7 +144,7 @@ function setEntryFile(projectConfig, hasAbilityPage) { } } -function setAbilityFile(projectConfig){ +function setAbilityFile(projectConfig) { const index = projectConfig.projectPath.split(path.sep).join('/').lastIndexOf('\/'); const lastPathName = projectConfig.projectPath.substring(index + 1, projectConfig.projectPath.length); const projectAbilityPath = path.resolve(projectConfig.projectPath, `${lastPathName}.ts`); @@ -155,6 +155,7 @@ function setAbilityFile(projectConfig){ } if (fs.existsSync(AbilityStagePath)) { projectConfig.entryObj['../AbilityStage'] = AbilityStagePath + '?entry'; + return true; } return false; } -- Gitee From 801685eeeba98747e0eec45e620188cd524b420a Mon Sep 17 00:00:00 2001 From: songbeibei <3409533354@qq.com> Date: Tue, 4 Jan 2022 18:24:56 +0800 Subject: [PATCH 3/3] 1972617324@qq.com Signed-off-by: songbeibei <3409533354@qq.com> --- compiler/main.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compiler/main.js b/compiler/main.js index 6aee24636..7824fc5b6 100644 --- a/compiler/main.js +++ b/compiler/main.js @@ -140,7 +140,8 @@ function setEntryFile(projectConfig, hasAbilityPage) { throw Error(`\u001b[31m ERROR: missing ${entryFilePath}. \u001b[39m`).message; } } else { - projectConfig.entryObj[`./${entryFileName}`] = projectConfig.projectPath + `/${abilityConfig.abilityEntryFile}?entry`; + projectConfig.entryObj[`./${entryFileName}`] = projectConfig.projectPath + + `/${abilityConfig.abilityEntryFile}?entry`; } } -- Gitee