sdin
Version:
JavaScript package builder.
64 lines (63 loc) • 2.24 kB
TypeScript
import { PackageInfo } from "../utils/npm";
import { SdinAbstractConfig } from './abstract-config';
/**
* Sdin 项目配置参数
*/
export interface SdinAbstractProjectParams {
/** 项目根目录(默认:当前工作目录) */
root?: string;
/** 模块别名(默认:不设置,相对项目根目录而言) */
alias?: Record<string, string>;
/** 代码宏定义(key 是原代码,value 是替换后的代码) */
codes?: Record<string, string>;
/** 数据宏定义(key 是原代码,value 是替换后的数据。在网页应用里,它会被挂载到全局变量 datas 上) */
datas?: Record<string, string>;
}
/**
* Sdin 配置
*/
export declare abstract class SdinAbstractProject<TAncestor extends object | null, TParent extends SdinAbstractProject<any, any, any, any> | null, TParams extends SdinAbstractProjectParams, TDatas extends Record<string, any>> extends SdinAbstractConfig<TAncestor, TParent, TParams> {
/** 项目根目录 */
readonly root: string;
/** 项目临时目录 */
readonly tmp: string;
/** 项目公共目录 */
readonly pro: string;
/** 项目配置目录 */
readonly cfg: string;
/** 项目包信息 */
readonly pkg: PackageInfo;
/** 模块别名 */
readonly alias: Record<string, string>;
/** 代码宏定义 */
readonly codes: Record<string, string>;
/** 数据宏定义 */
abstract datas: TDatas;
constructor(ancestor: TAncestor, parent: TParent, params: TParams);
/**
* 获取项目根目录下的绝对路径
*/
withRoot(...pathSegments: string[]): string;
/**
* 获得项目临时目录下的绝对路径
*/
withTmp(...pathSegments: string[]): string;
/**
* 获得项目公共目录下的绝对路径
*/
withPro(...pathSegments: string[]): string;
/**
* 获得项目配置目录下的绝对路径
*/
withCfg(...pathSegments: string[]): string;
/**
* 将用户定义的代码和数据宏定义,转成可用于编译的宏定义
*/
toMacros(): {
[x: string]: string;
};
/**
* 将 alias 转换成 tsconfig paths
*/
toTsCfgPaths(): Record<string, string[]>;
}