diff --git a/packages/core/src/models/workspace.ts b/packages/core/src/models/workspace.ts index 4cca11c..058bfbc 100644 --- a/packages/core/src/models/workspace.ts +++ b/packages/core/src/models/workspace.ts @@ -1233,8 +1233,17 @@ export class Workspace extends EventTarget implements IWorkspace { let filename: string; this.routeModule?.routes.forEach((route) => { if (isPathnameMatchRoute(routePath, route.path) && route.importPath) { - const absolutePath = route.importPath.replace('.', '/src'); - filename = this.getRealViewFilePath(absolutePath); + if (route.importPath.startsWith('@/')) { + filename = route.importPath; + const alias = this.tangoConfigJson.getValue('sandbox.alias') || {}; + if (alias['@']) { + filename = filename.replace('@', alias['@']); + } + filename = this.getRealViewFilePath(filename); + } else { + const absolutePath = route.importPath.replace('.', '/src'); + filename = this.getRealViewFilePath(absolutePath); + } } }); return filename; diff --git a/packages/helpers/src/types/prototype.ts b/packages/helpers/src/types/prototype.ts index 05eae64..01245b6 100644 --- a/packages/helpers/src/types/prototype.ts +++ b/packages/helpers/src/types/prototype.ts @@ -300,6 +300,19 @@ export interface ITangoConfigJson { * 外部资源,例如 js, css 文件等 */ externalResources?: Record; + /** + * 沙箱配置 + */ + sandbox?: { + /** + * 在沙箱中执行的脚本 + */ + evaluateJavaScript?: string; + /** + * 模块的别名 + */ + alias?: Record; + }; /** * 设计器配置 */