1export declare enum PathType {
2 npm = "npm:",
3 root = "root:"
4}
5export interface ModuleConfig {
6 /**
7 * 对外导出的文件
8 * 必须以 npm: 或 root: 开头
9 * npm:开头代表 node_modules 的依赖
10 * root:开头代表项目内root目录下的文件
11 * 例如:
12 * npm:vue
13 * root:src/routes
14 * root:src/[filename]
15 */
16 exports?: string[];
17 /**
18 * 导入的模块基本配置
19 */
20 imports?: Record<string, string>;
21 /**
22 * 设置项目的外部依赖
23 * 例如:
24 * {
25 * "vue": "ssr-npm/vue"
26 * }
27 */
28 externals?: Record<string, string>;
29}
30export interface ParsedModuleConfig {
31 /**
32 * 当前的服务名字
33 */
34 name: string;
35 /**
36 * 当前服务运行的根目录
37 */
38 root: string;
39 /**
40 * 对外导出的文件
41 */
42 exports: {
43 /**
44 * npm:*
45 * root:src/*
46 * root:src/routes/index.ts
47 */
48 name: string;
49 /**
50 * 路径的类型
51 */
52 type: PathType;
53 /**
54 * ssr-demo/npm/vue
55 * ssr-demo/src/routes
56 * ssr-demo/src/routes/index
57 */
58 importName: string;
59 /**
60 * ./npm/vue
61 * ./src/routes
62 */
63 exportName: string;
64 /**
65 * vue
66 * ./src/routes.ts
67 */
68 exportPath: string;
69 /**
70 * vue
71 * ssr-demo/src/routes/index
72 */
73 externalName: string;
74 }[];
75 /**
76 * 导入的外部服务
77 */
78 imports: {
79 /**
80 * 外部服务名称
81 */
82 name: string;
83 /**
84 * 本地路径
85 * 用于读取依赖 和 存放远程下载的依赖
86 */
87 localPath: string;
88 }[];
89 /**
90 * 外部依赖
91 */
92 externals: Record<string, {
93 match: RegExp;
94 import?: string;
95 }>;
96}
97/**
98 * 解析模块配置
99 * @param name 当前运行服务的名字
100 * @param root 当前运行服务的根路径
101 * @param config 模块的配置
102 * @returns
103 */
104export declare function parseModuleConfig(name: string, root: string, config?: ModuleConfig): ParsedModuleConfig;