@arkxio/ark-dev-utils 0.1.5 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/typings.d.ts CHANGED
@@ -1,295 +1,295 @@
1
- /**
2
- * default: 'all',生成资源清单时的元数据提取方式,会影响元数据的记录结果
3
- * ```
4
- * all:提取并记录构建时生成的产物、静态路径导入的产物、homePage之外相对路径导入的产物,同时也会记录 html_content
5
- * build:只提取并记录构建时生成的产物,同时也会记录 html_content
6
- * all_no_html:提取并记录构建时生成的产物、静态路径导入的产物、homePage之外相对路径导入的产物,不记录 html_content
7
- * build_no_html:只提取并记录构建时生成的产物,不记录 html_content
8
- * ```
9
- */
10
- type ExtractMode = 'all' | 'build' | 'all_no_html' | 'build_no_html';
11
-
12
- /** SrcMap形如:
13
- {
14
- "iconSrc": "/web-app/sub-apps/news-shelf/favicon.ico",
15
- "mainCssSrc": "",
16
- "chunkCssSrcList": [],
17
- }
18
- */
19
- export interface SrcMap {
20
- webDirPath: string;
21
- /** default: 'all' */
22
- extractMode: ExtractMode;
23
- /** 用于辅助iframe载入子应用入口html地址 */
24
- iframeSrc: string;
25
- /** 所有依据 homePage 构建生成的 js 列表 */
26
- chunkJsSrcList: string[];
27
- /** 所有依据 homePage 构建生成的 css 列表 */
28
- chunkCssSrcList: string[];
29
- /** 所有绝对路径导入的 homePage 之外的 js 列表,在 extractMode 为 all 或 all_no_html 时才会记录 */
30
- staticJsSrcList: string[];
31
- /** 所有绝对路径导入的 homePage 之外的 css 列表,在 extractMode 为 all 或 all_no_html 时才会记录 */
32
- staticCssSrcList: string[];
33
- /** 所有相对路径导入的 homePage 之外的 js 列表,在 extractMode 为 all 或 all_no_html 时才会记录 */
34
- relativeJsSrcList: string[];
35
- /** 所有相对路径导入的 homePage 之外的 css 列表,在 extractMode 为 all 或 all_no_html 时才会记录 */
36
- relativeCssSrcList: string[];
37
- /** 应用首屏加载时需要插入到 document.head 里的资源列表 */
38
- headAssetList: string[];
39
- /** 应用首屏加载时需要插入到 document.body 里的资源列表 */
40
- bodyAssetList: string[];
41
- /** 所有依据 homePage 构建生成的其他类型的资源文件列表 */
42
- otherSrcList: string[];
43
- }
44
-
45
- interface ObjBase {
46
- create_by: string;
47
- // create_at: '2020-04-01T02:51:35.000Z',
48
- create_at: string;
49
- update_at: string;
50
- }
51
-
52
- export interface SubAppInfo extends ObjBase {
53
- id: number;
54
- /** app对应的英文名 */
55
- name: string;
56
- /** app对应的组名 */
57
- app_group_name: string;
58
- /** app对应在敏感权限系统里的名字 */
59
- name_in_sec: string;
60
- /** 如果是测试app的话,只下发给测试人员,此种模式的app永远只会将build_version下发给前端,其他xxx_version对于它来说都是冗余的 */
61
- is_test: 1 | 0;
62
- /** 是否允许灰度 */
63
- enable_gray: 1 | 0;
64
- /** 是否正在灰度中,每次流水线构建时如果 enable_gray 是1,则此值会设置为1 */
65
- is_in_gray: 1 | 0;
66
- /** 灰度用户名单 */
67
- gray_users: string[];
68
- /** 每一个子应用对应的唯一token */
69
- token: string;
70
- /** app对应的中文名 */
71
- cnname: string;
72
- splash_screen: string;
73
- logo: string;
74
- desc: string;
75
- owners: string[];
76
- _ctime: string;
77
- _mtime: string;
78
- /** 产品审核通过,将预发布版本变为线上版本 */
79
- online_version: string;
80
- /** 测试人员提交审核,触发更新预发布版本 */
81
- pre_version: string;
82
- /** 开发在app后台提交构建版本为测试,触发更新测试版本 */
83
- test_version: string;
84
- /** 每次蓝盾流水线构建完毕,都会更新构建版本,当做灰度版本使用 */
85
- build_version: string;
86
- /** 是否允许流水线发布新版本 */
87
- enable_pipeline: 1 | 0;
88
- /** 是否允许下发给客户端做展示 */
89
- enable_display: 1 | 0;
90
- /** 请求host */
91
- api_host: string;
92
- /** 渲染模式 react react-shadow iframe */
93
- render_mode: string;
94
- class_name: string;
95
- versions: string;
96
- ui_framework: string;
97
- host_map: {
98
- online: string;
99
- pre: string;
100
- build: string;
101
- };
102
- }
103
- export interface SubAppVersion extends ObjBase {
104
- id: number;
105
- sub_app_id: string;
106
- /** 冗余存储的子应用名称,对应app_info表的name字段 */
107
- sub_app_name: string;
108
- /** 每次构建新生成的版本号 */
109
- sub_app_version: string;
110
- /**
111
- * 资源描述表map,parse后见domain-inner SrcMap
112
- */
113
- src_map: string;
114
- desc: string;
115
- }
116
-
117
- export interface SubAppVersionEntity extends Omit<SubAppVersion, 'src_map'> {
118
- src_map: SrcMap;
119
- }
120
-
121
- /** 形如
122
- {
123
- fileAbsolutePath: '/tmp/CmsSubAppBxxxxx.chunk.css',
124
- cosDirName: 'om_20200408113805',
125
- cosFileRelativePath: '/static/css/35.4288e4f0.chunk.css'
126
- }
127
- */
128
- export interface FileDesc {
129
- /** 文件在构建机容器里所处的绝对路径 */
130
- fileAbsolutePath: string;
131
- /** 文件在网络上所处的路径 */
132
- fileWebPath: string;
133
- /** 文件在网络上所处的路径(不带host) */
134
- fileWebPathWithoutHost: string;
135
- }
136
-
137
- export interface IAssetOptions {
138
- el: HTMLScriptElement;
139
- homePage: string;
140
- extractMode: SrcMap;
141
- enableRelativePath: boolean;
142
- enableAssetInnerText: boolean;
143
- innerText: string;
144
- }
145
-
146
- export interface IAssetInfo {
147
- url: string;
148
- el: HTMLScriptElement;
149
- isBuildUrl: boolean;
150
- isNonBuildAndRelative: boolean;
151
- allowAddToAssetList: boolean;
152
- canAppend: boolean;
153
- innerText: string;
154
- }
155
-
156
- export interface ISubAppBuildDesc {
157
- platform: string;
158
- homePage: string;
159
- npmCdnType: string;
160
- groupName: string;
161
- semverApi: boolean;
162
- name: string;
163
- externals: Record<string, any>;
164
- /** return merged externals */
165
- getExternals: (userExternals?: Record<string, any>) => Record<string, any>;
166
- jsonpFnName: string;
167
- /**
168
- * fallbackPathOrUrl default: '/'
169
- * ensureEndSlash default: true
170
- */
171
- getPublicPathOrUrl: (fallbackPathOrUrl: string, ensureEndSlash: boolean) => string;
172
- distDir: string;
173
- }
174
-
175
- /** 用户自定义的各种提取选项 */
176
- export interface IUserExtractOptions {
177
- buildDirFullPath: string;
178
- packageJson: Record<string, any>;
179
- /**
180
- * @deprecated
181
- * 应用信息,保留此属性是为了让老用户升级后不报错,内部优先取 appInfo 再取 subApp
182
- */
183
- subApp: ISubAppBuildDesc;
184
- /**
185
- * 应用信息
186
- */
187
- appInfo: ISubAppBuildDesc;
188
- /**
189
- * 构建版本号,当指定了 appHomePage 且不想采用默认的版本号生成规则时,才需要透传 buildVer 值
190
- * 默认生成规则:
191
- * 内网包:裁出 appHomePage ${cdnHost}/${appZone}/${appName}_${dateStr} 里的 ${appName}_${dateStr} 作为版本号
192
- * 外网包:pkg.version
193
- */
194
- buildVer?: string;
195
- /**
196
- * default: 'all',资源清单元数据提取方式,会影响元数据的记录结果
197
- */
198
- extractMode?: ExtractMode;
199
- /** default: ark_dist */
200
- distDir?: string;
201
- /** default: true */
202
- writeMetaJsonToDist?: boolean;
203
- /**
204
- * default: false, 针对存在有 innerText 的节点时,是否提取到元数据 srcMap 里,true:提取 innerText 到 srcMap,false:存为外链后放 srcMap
205
- * 此参数在针对 vite 产物场景有用,vite 产物里有一些内联的 type='module' 的 script,它们需要被按顺序触发执行,外链后执行顺讯因为网络关系不一定能保证
206
- * 设置为 true 后,则 assetItem.innerText 会直接记录内联脚本内容,不再有额外的网络请求去拉取外链资源,执行顺序也就能保证了
207
- */
208
- enableAssetInnerText?: boolean;
209
- /** default: true, 是否替换的 dev.js 结尾的文件为 .js */
210
- enableReplaceDevJs?: boolean;
211
- /** default: false, 是否允许在 homePage 之外的相对路径的资源存在 */
212
- enableRelativePath?: boolean;
213
- /**
214
- * default: false,是否自动为 html 文件里出现的以单 / 开头的资源拼接上 homePage 前缀
215
- * 目前的使用场景式1:
216
- * vite.config 不知如何配置 publicUrl,可设置此参数为 true
217
- * 开启后,index.html里的 /aaa-123.js 会变为 {homePage}/aaa-123.js
218
- */
219
- enablePrefixHomePage?: boolean;
220
- /** default: undefined, 如无特殊情况,不需要指定,内部会自动去构建目录下查询 .html 结尾的文件 */
221
- indexHtmlName?: string;
222
- }
223
-
224
- export interface IInnerSubAppOptions {
225
- /** 历史原因,保留 vue3 vue3,目前他们的external配置一样 */
226
- frameworkType: 'react' | 'vue2' | 'vue3' | 'vue' | 'lib';
227
- }
228
-
229
- export interface IInnerFillAssetListOptions {
230
- homePage: string;
231
- buildDirFullPath: string;
232
- srcMap: SrcMap;
233
- isHead: boolean;
234
- enableReplaceDevJs: IUserExtractOptions['enableReplaceDevJs'];
235
- enableRelativePath: IUserExtractOptions['enableRelativePath'];
236
- enablePrefixHomePage: IUserExtractOptions['enablePrefixHomePage'];
237
- enableAssetInnerText: IUserExtractOptions['enableAssetInnerText'];
238
- /** webpack compilation 对象,用于在开发模式下通过 emitAsset 输出文件 */
239
- compilation?: any;
240
- /** 自定义资产列表,用于收集从 HTML 内联脚本提取的代码 */
241
- customAssets?: Array<{ scriptName: string; fileWebPath: string; content: string }>;
242
- }
243
-
244
- export interface ICreateSubAppOptions {
245
- externals?: Record<string, any>;
246
- homePage?: string;
247
- /**
248
- * default: true,
249
- * 当 platform 为 unpkg ,且用户自定义了 homePage 值时, 此参数才有作用
250
- * 表示最终生成的homepage值是否拼接上模块名、版本号、hel内置目录等参数
251
- * 例如用户设定 homePage: https://xxx.yyy.com/sub_path
252
- * changeHomePage 为 true ,最终生成的 homePage 形如:https://xxx.yyy.com/sub_path/pack-name@1.0.0/ark_dist/
253
- * changeHomePage 为 false ,最终生成的 homePage 形如:https://xxx.yyy.com/sub_path/
254
- */
255
- handleHomePage?: boolean;
256
- /**
257
- * default: 外部包为 unpkg, 内部包为 hel
258
- */
259
- platform?: string;
260
- /** default: unpkg ,当 platform 为 unpkg 时,此参数才有效
261
- * 需要发布到npm cdn托管元数据时(支持语义化版本资源请求链接)可设定此值,
262
- * 目前支持 unpkg、jsdelivr,后期支持其他 cdn 类型
263
- */
264
- npmCdnType?: 'unpkg' | 'jsdelivr';
265
- /**
266
- * default: true
267
- * 是否是语义化api格式的cdn链接
268
- */
269
- semverApi?: boolean;
270
- /**
271
- * default: 'ark_dist'
272
- */
273
- distDir?: string;
274
- }
275
-
276
- export interface ICheckOptions {
277
- /**
278
- * 不传递 fileFullPath 的话,会按照下面的路径去猜测 subApp 文件的位置:
279
- *
280
- * 执行的代码位于:<projectDir>/node_modules/ark-dev-utils/lib/index.js
281
- * 推测路径:path.join(__dirname, '../../../src/configs/subApp')
282
- *
283
- * 因通常 check 都是在 <projectDir>/scripts/check.js 里执行,如要传递可写为
284
- * ```js
285
- * const fileFullPath = path.join(__dirname, '../src/configs/subApp');
286
- * ```
287
- *
288
- */
289
- fileFullPath?: string;
290
- /**
291
- * default: true
292
- * 是否检查 process.env.HEL_APP_GROUP_NAME 和 代码里的定义的 LIB_NAME 是否一致
293
- */
294
- checkEnv?: boolean;
295
- }
1
+ /**
2
+ * default: 'all',生成资源清单时的元数据提取方式,会影响元数据的记录结果
3
+ * ```
4
+ * all:提取并记录构建时生成的产物、静态路径导入的产物、homePage之外相对路径导入的产物,同时也会记录 html_content
5
+ * build:只提取并记录构建时生成的产物,同时也会记录 html_content
6
+ * all_no_html:提取并记录构建时生成的产物、静态路径导入的产物、homePage之外相对路径导入的产物,不记录 html_content
7
+ * build_no_html:只提取并记录构建时生成的产物,不记录 html_content
8
+ * ```
9
+ */
10
+ type ExtractMode = 'all' | 'build' | 'all_no_html' | 'build_no_html';
11
+
12
+ /** SrcMap形如:
13
+ {
14
+ "iconSrc": "/web-app/sub-apps/news-shelf/favicon.ico",
15
+ "mainCssSrc": "",
16
+ "chunkCssSrcList": [],
17
+ }
18
+ */
19
+ export interface SrcMap {
20
+ webDirPath: string;
21
+ /** default: 'all' */
22
+ extractMode: ExtractMode;
23
+ /** 用于辅助iframe载入子应用入口html地址 */
24
+ iframeSrc: string;
25
+ /** 所有依据 homePage 构建生成的 js 列表 */
26
+ chunkJsSrcList: string[];
27
+ /** 所有依据 homePage 构建生成的 css 列表 */
28
+ chunkCssSrcList: string[];
29
+ /** 所有绝对路径导入的 homePage 之外的 js 列表,在 extractMode 为 all 或 all_no_html 时才会记录 */
30
+ staticJsSrcList: string[];
31
+ /** 所有绝对路径导入的 homePage 之外的 css 列表,在 extractMode 为 all 或 all_no_html 时才会记录 */
32
+ staticCssSrcList: string[];
33
+ /** 所有相对路径导入的 homePage 之外的 js 列表,在 extractMode 为 all 或 all_no_html 时才会记录 */
34
+ relativeJsSrcList: string[];
35
+ /** 所有相对路径导入的 homePage 之外的 css 列表,在 extractMode 为 all 或 all_no_html 时才会记录 */
36
+ relativeCssSrcList: string[];
37
+ /** 应用首屏加载时需要插入到 document.head 里的资源列表 */
38
+ headAssetList: string[];
39
+ /** 应用首屏加载时需要插入到 document.body 里的资源列表 */
40
+ bodyAssetList: string[];
41
+ /** 所有依据 homePage 构建生成的其他类型的资源文件列表 */
42
+ otherSrcList: string[];
43
+ }
44
+
45
+ interface ObjBase {
46
+ create_by: string;
47
+ // create_at: '2020-04-01T02:51:35.000Z',
48
+ create_at: string;
49
+ update_at: string;
50
+ }
51
+
52
+ export interface SubAppInfo extends ObjBase {
53
+ id: number;
54
+ /** app对应的英文名 */
55
+ name: string;
56
+ /** app对应的组名 */
57
+ app_group_name: string;
58
+ /** app对应在敏感权限系统里的名字 */
59
+ name_in_sec: string;
60
+ /** 如果是测试app的话,只下发给测试人员,此种模式的app永远只会将build_version下发给前端,其他xxx_version对于它来说都是冗余的 */
61
+ is_test: 1 | 0;
62
+ /** 是否允许灰度 */
63
+ enable_gray: 1 | 0;
64
+ /** 是否正在灰度中,每次流水线构建时如果 enable_gray 是1,则此值会设置为1 */
65
+ is_in_gray: 1 | 0;
66
+ /** 灰度用户名单 */
67
+ gray_users: string[];
68
+ /** 每一个子应用对应的唯一token */
69
+ token: string;
70
+ /** app对应的中文名 */
71
+ cnname: string;
72
+ splash_screen: string;
73
+ logo: string;
74
+ desc: string;
75
+ owners: string[];
76
+ _ctime: string;
77
+ _mtime: string;
78
+ /** 产品审核通过,将预发布版本变为线上版本 */
79
+ online_version: string;
80
+ /** 测试人员提交审核,触发更新预发布版本 */
81
+ pre_version: string;
82
+ /** 开发在app后台提交构建版本为测试,触发更新测试版本 */
83
+ test_version: string;
84
+ /** 每次蓝盾流水线构建完毕,都会更新构建版本,当做灰度版本使用 */
85
+ build_version: string;
86
+ /** 是否允许流水线发布新版本 */
87
+ enable_pipeline: 1 | 0;
88
+ /** 是否允许下发给客户端做展示 */
89
+ enable_display: 1 | 0;
90
+ /** 请求host */
91
+ api_host: string;
92
+ /** 渲染模式 react react-shadow iframe */
93
+ render_mode: string;
94
+ class_name: string;
95
+ versions: string;
96
+ ui_framework: string;
97
+ host_map: {
98
+ online: string;
99
+ pre: string;
100
+ build: string;
101
+ };
102
+ }
103
+ export interface SubAppVersion extends ObjBase {
104
+ id: number;
105
+ sub_app_id: string;
106
+ /** 冗余存储的子应用名称,对应app_info表的name字段 */
107
+ sub_app_name: string;
108
+ /** 每次构建新生成的版本号 */
109
+ sub_app_version: string;
110
+ /**
111
+ * 资源描述表map,parse后见domain-inner SrcMap
112
+ */
113
+ src_map: string;
114
+ desc: string;
115
+ }
116
+
117
+ export interface SubAppVersionEntity extends Omit<SubAppVersion, 'src_map'> {
118
+ src_map: SrcMap;
119
+ }
120
+
121
+ /** 形如
122
+ {
123
+ fileAbsolutePath: '/tmp/CmsSubAppBxxxxx.chunk.css',
124
+ cosDirName: 'om_20200408113805',
125
+ cosFileRelativePath: '/static/css/35.4288e4f0.chunk.css'
126
+ }
127
+ */
128
+ export interface FileDesc {
129
+ /** 文件在构建机容器里所处的绝对路径 */
130
+ fileAbsolutePath: string;
131
+ /** 文件在网络上所处的路径 */
132
+ fileWebPath: string;
133
+ /** 文件在网络上所处的路径(不带host) */
134
+ fileWebPathWithoutHost: string;
135
+ }
136
+
137
+ export interface IAssetOptions {
138
+ el: HTMLScriptElement;
139
+ homePage: string;
140
+ extractMode: SrcMap;
141
+ enableRelativePath: boolean;
142
+ enableAssetInnerText: boolean;
143
+ innerText: string;
144
+ }
145
+
146
+ export interface IAssetInfo {
147
+ url: string;
148
+ el: HTMLScriptElement;
149
+ isBuildUrl: boolean;
150
+ isNonBuildAndRelative: boolean;
151
+ allowAddToAssetList: boolean;
152
+ canAppend: boolean;
153
+ innerText: string;
154
+ }
155
+
156
+ export interface ISubAppBuildDesc {
157
+ platform: string;
158
+ homePage: string;
159
+ npmCdnType: string;
160
+ groupName: string;
161
+ semverApi: boolean;
162
+ name: string;
163
+ externals: Record<string, any>;
164
+ /** return merged externals */
165
+ getExternals: (userExternals?: Record<string, any>) => Record<string, any>;
166
+ jsonpFnName: string;
167
+ /**
168
+ * fallbackPathOrUrl default: '/'
169
+ * ensureEndSlash default: true
170
+ */
171
+ getPublicPathOrUrl: (fallbackPathOrUrl: string, ensureEndSlash: boolean) => string;
172
+ distDir: string;
173
+ }
174
+
175
+ /** 用户自定义的各种提取选项 */
176
+ export interface IUserExtractOptions {
177
+ buildDirFullPath: string;
178
+ packageJson: Record<string, any>;
179
+ /**
180
+ * @deprecated
181
+ * 应用信息,保留此属性是为了让老用户升级后不报错,内部优先取 appInfo 再取 subApp
182
+ */
183
+ subApp: ISubAppBuildDesc;
184
+ /**
185
+ * 应用信息
186
+ */
187
+ appInfo: ISubAppBuildDesc;
188
+ /**
189
+ * 构建版本号,当指定了 appHomePage 且不想采用默认的版本号生成规则时,才需要透传 buildVer 值
190
+ * 默认生成规则:
191
+ * 内网包:裁出 appHomePage ${cdnHost}/${appZone}/${appName}_${dateStr} 里的 ${appName}_${dateStr} 作为版本号
192
+ * 外网包:pkg.version
193
+ */
194
+ buildVer?: string;
195
+ /**
196
+ * default: 'all',资源清单元数据提取方式,会影响元数据的记录结果
197
+ */
198
+ extractMode?: ExtractMode;
199
+ /** default: ark_dist */
200
+ distDir?: string;
201
+ /** default: true */
202
+ writeMetaJsonToDist?: boolean;
203
+ /**
204
+ * default: false, 针对存在有 innerText 的节点时,是否提取到元数据 srcMap 里,true:提取 innerText 到 srcMap,false:存为外链后放 srcMap
205
+ * 此参数在针对 vite 产物场景有用,vite 产物里有一些内联的 type='module' 的 script,它们需要被按顺序触发执行,外链后执行顺讯因为网络关系不一定能保证
206
+ * 设置为 true 后,则 assetItem.innerText 会直接记录内联脚本内容,不再有额外的网络请求去拉取外链资源,执行顺序也就能保证了
207
+ */
208
+ enableAssetInnerText?: boolean;
209
+ /** default: true, 是否替换的 dev.js 结尾的文件为 .js */
210
+ enableReplaceDevJs?: boolean;
211
+ /** default: false, 是否允许在 homePage 之外的相对路径的资源存在 */
212
+ enableRelativePath?: boolean;
213
+ /**
214
+ * default: false,是否自动为 html 文件里出现的以单 / 开头的资源拼接上 homePage 前缀
215
+ * 目前的使用场景式1:
216
+ * vite.config 不知如何配置 publicUrl,可设置此参数为 true
217
+ * 开启后,index.html里的 /aaa-123.js 会变为 {homePage}/aaa-123.js
218
+ */
219
+ enablePrefixHomePage?: boolean;
220
+ /** default: undefined, 如无特殊情况,不需要指定,内部会自动去构建目录下查询 .html 结尾的文件 */
221
+ indexHtmlName?: string;
222
+ }
223
+
224
+ export interface IInnerSubAppOptions {
225
+ /** 历史原因,保留 vue3 vue3,目前他们的external配置一样 */
226
+ frameworkType: 'react' | 'vue2' | 'vue3' | 'vue' | 'lib';
227
+ }
228
+
229
+ export interface IInnerFillAssetListOptions {
230
+ homePage: string;
231
+ buildDirFullPath: string;
232
+ srcMap: SrcMap;
233
+ isHead: boolean;
234
+ enableReplaceDevJs: IUserExtractOptions['enableReplaceDevJs'];
235
+ enableRelativePath: IUserExtractOptions['enableRelativePath'];
236
+ enablePrefixHomePage: IUserExtractOptions['enablePrefixHomePage'];
237
+ enableAssetInnerText: IUserExtractOptions['enableAssetInnerText'];
238
+ /** webpack compilation 对象,用于在开发模式下通过 emitAsset 输出文件 */
239
+ compilation?: any;
240
+ /** 自定义资产列表,用于收集从 HTML 内联脚本提取的代码 */
241
+ customAssets?: Array<{ scriptName: string; fileWebPath: string; content: string }>;
242
+ }
243
+
244
+ export interface ICreateSubAppOptions {
245
+ externals?: Record<string, any>;
246
+ homePage?: string;
247
+ /**
248
+ * default: true,
249
+ * 当 platform 为 unpkg ,且用户自定义了 homePage 值时, 此参数才有作用
250
+ * 表示最终生成的homepage值是否拼接上模块名、版本号、hel内置目录等参数
251
+ * 例如用户设定 homePage: https://xxx.yyy.com/sub_path
252
+ * changeHomePage 为 true ,最终生成的 homePage 形如:https://xxx.yyy.com/sub_path/pack-name@1.0.0/ark_dist/
253
+ * changeHomePage 为 false ,最终生成的 homePage 形如:https://xxx.yyy.com/sub_path/
254
+ */
255
+ handleHomePage?: boolean;
256
+ /**
257
+ * default: 外部包为 unpkg, 内部包为 hel
258
+ */
259
+ platform?: string;
260
+ /** default: unpkg ,当 platform 为 unpkg 时,此参数才有效
261
+ * 需要发布到npm cdn托管元数据时(支持语义化版本资源请求链接)可设定此值,
262
+ * 目前支持 unpkg、jsdelivr,后期支持其他 cdn 类型
263
+ */
264
+ npmCdnType?: 'unpkg' | 'jsdelivr';
265
+ /**
266
+ * default: true
267
+ * 是否是语义化api格式的cdn链接
268
+ */
269
+ semverApi?: boolean;
270
+ /**
271
+ * default: 'ark_dist'
272
+ */
273
+ distDir?: string;
274
+ }
275
+
276
+ export interface ICheckOptions {
277
+ /**
278
+ * 不传递 fileFullPath 的话,会按照下面的路径去猜测 subApp 文件的位置:
279
+ *
280
+ * 执行的代码位于:<projectDir>/node_modules/ark-dev-utils/lib/index.js
281
+ * 推测路径:path.join(__dirname, '../../../src/configs/subApp')
282
+ *
283
+ * 因通常 check 都是在 <projectDir>/scripts/check.js 里执行,如要传递可写为
284
+ * ```js
285
+ * const fileFullPath = path.join(__dirname, '../src/configs/subApp');
286
+ * ```
287
+ *
288
+ */
289
+ fileFullPath?: string;
290
+ /**
291
+ * default: true
292
+ * 是否检查 process.env.HEL_APP_GROUP_NAME 和 代码里的定义的 LIB_NAME 是否一致
293
+ */
294
+ checkEnv?: boolean;
295
+ }