diff --git a/ets2panda/driver/build_system/src/build/base_mode.ts b/ets2panda/driver/build_system/src/build/base_mode.ts index e1d65f97f6fe1fe2db58868c9de4ba6bfe8dfc66..8774386190e91e1e97cb3d173bfabfb29c76ee39 100644 --- a/ets2panda/driver/build_system/src/build/base_mode.ts +++ b/ets2panda/driver/build_system/src/build/base_mode.ts @@ -69,7 +69,8 @@ import { DependentModuleConfig, JobInfo, KPointer, - ModuleInfo + ModuleInfo, + PathsConfig } from '../types'; import { ArkTSConfigGenerator } from './generate_arktsconfig'; import { SetupClusterOptions } from '../types'; @@ -88,6 +89,7 @@ export abstract class BaseMode { sourceRoots: string[]; moduleRootPath: string; moduleType: string; + paths?: PathsConfig; dependentModuleList: DependentModuleConfig[]; moduleInfos: Map; mergedAbcFile: string; @@ -122,6 +124,7 @@ export abstract class BaseMode { this.moduleRootPath = buildConfig.moduleRootPath as string; this.moduleType = buildConfig.moduleType as string; this.byteCodeHar = buildConfig.byteCodeHar as boolean; + this.paths = buildConfig.paths; this.dependentModuleList = buildConfig.dependentModuleList; this.isDebug = buildConfig.buildMode as string === BUILD_MODE.DEBUG; this.hasMainModule = buildConfig.hasMainModule; @@ -378,7 +381,7 @@ export abstract class BaseMode { protected generateArkTSConfigForModules(): void { this.moduleInfos.forEach((moduleInfo: ModuleInfo, moduleRootPath: string) => { - ArkTSConfigGenerator.getInstance(this.buildConfig, this.moduleInfos).writeArkTSConfigFile(moduleInfo, this.enableDeclgenEts2Ts); + ArkTSConfigGenerator.getInstance(this.buildConfig, this.moduleInfos).writeArkTSConfigFile(moduleInfo, this.enableDeclgenEts2Ts, this.paths); }); } diff --git a/ets2panda/driver/build_system/src/build/generate_arktsconfig.ts b/ets2panda/driver/build_system/src/build/generate_arktsconfig.ts index 197b6efdd6a3eee1863d6c017ba8f8debc29e0ab..4a93c7bb863a392578e3ea1cc92e25f4b928db92 100644 --- a/ets2panda/driver/build_system/src/build/generate_arktsconfig.ts +++ b/ets2panda/driver/build_system/src/build/generate_arktsconfig.ts @@ -30,7 +30,8 @@ import { } from '../utils'; import { BuildConfig, - ModuleInfo + ModuleInfo, + PathsConfig } from '../types'; import { LANGUAGE_VERSION, @@ -226,7 +227,7 @@ export class ArkTSConfigGenerator { }); } - public writeArkTSConfigFile(moduleInfo: ModuleInfo, enableDeclgenEts2Ts: boolean): void { + public writeArkTSConfigFile(moduleInfo: ModuleInfo, enableDeclgenEts2Ts: boolean, paths?: PathsConfig): void { if (!moduleInfo.sourceRoots || moduleInfo.sourceRoots.length === 0) { const logData: LogData = LogDataFactory.newInstance( ErrorCode.BUILDSYSTEM_SOURCEROOTS_NOT_SET_FAIL, @@ -244,6 +245,11 @@ export class ArkTSConfigGenerator { } let baseUrl: string = path.resolve(moduleInfo.moduleRootPath, moduleInfo.sourceRoots[0]); + if (paths) { + Object.entries(paths).map(([key, value]) => { + pathSection[key] = value + }); + } let arktsConfig: ArkTSConfigObject = { compilerOptions: { package: moduleInfo.packageName, diff --git a/ets2panda/driver/build_system/src/types.ts b/ets2panda/driver/build_system/src/types.ts index 0afb84da0714b559931641d5547c43b6dd7c234e..741d2fd92e88530f5bbebc51f040bd3846cd6d6f 100644 --- a/ets2panda/driver/build_system/src/types.ts +++ b/ets2panda/driver/build_system/src/types.ts @@ -35,6 +35,10 @@ export interface PluginsConfig { [pluginName: string]: string; } +export interface PathsConfig { + [pathName: string]: string[]; +} + export interface BuildBaseConfig { buildType: BUILD_TYPE; buildMode: BUILD_MODE; @@ -161,6 +165,7 @@ export interface DependentModuleConfig { export interface BuildConfig extends BuildBaseConfig, DeclgenConfig, LoggerConfig, ModuleConfig, PathConfig, FrameworkConfig { plugins: PluginsConfig; + paths: PathsConfig; compileFiles: string[]; entryFiles?: string[]; dependentModuleList: DependentModuleConfig[];