import { SdinProject, SdinProjectDatas } from './project'; import { SdinAbstractProject, SdinAbstractProjectParams } from './abstract-project'; export interface SdinAbstractModuleDatas extends SdinProjectDatas { SDIN_MODULE_ENV: string; SDIN_MODULE_TYPE: string; SDIN_MODULE_MODE: string; SDIN_MODULE_NAME: string; } /** * Sdin 抽象模块选项 */ export interface SdinAbstractModuleParams extends SdinAbstractProjectParams { /** 模块类型 */ type: TType; /** 模块名称 */ name: string; /** 模块构建模式 */ mode?: TMode; /** 模块源码目录 */ src?: string; /** 模块目标目录 */ tar?: string; } /** * Sdin 抽象模块配置 */ export declare abstract class SdinAbstractModule, TDatas extends SdinAbstractModuleDatas> extends SdinAbstractProject { /** 模块类型 */ readonly type: TType; /** 模块名称 */ readonly name: string; /** 模块构建模式 */ readonly mode: TMode; /** 模块源码目录 */ readonly src: string; /** 模块目标目录 */ readonly tar: string; /** 数据宏定义 */ abstract datas: TDatas; constructor(project: SdinProject, params: TParam, mode: TMode, tarSuffix: string); /** * 检查模块配置对象 */ validate(): Promise; /** * 获取模块源码目录下的绝对路径 */ withSrc(...pathSegments: string[]): string; /** * 获得模块目标目录下的绝对路径 */ withTar(...pathSegments: string[]): string; /** * 设置环境标识 */ setEnv(it: 'pro' | 'dev'): void; }