@uni-helper/vite-plugin-uni-pages 0.2.6 → 0.2.7
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/README.md +1 -1
- package/dist/index.cjs +27 -15
- package/dist/index.d.cts +828 -0
- package/dist/index.d.mts +828 -0
- package/dist/index.d.ts +16 -7
- package/dist/index.mjs +27 -15
- package/package.json +14 -9
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,828 @@
|
|
|
1
|
+
import { Logger, ViteDevServer, Plugin } from 'vite';
|
|
2
|
+
import { LoadConfigSource } from 'unconfig';
|
|
3
|
+
import { FSWatcher } from 'chokidar';
|
|
4
|
+
import Debug from 'debug';
|
|
5
|
+
import { SFCBlock, SFCDescriptor } from '@vue/compiler-sfc';
|
|
6
|
+
|
|
7
|
+
interface EasyCom {
|
|
8
|
+
autoscan: boolean;
|
|
9
|
+
custom: Record<string, string>;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
type RGBColor = `rgb(${number}, ${number}, ${number})`;
|
|
13
|
+
type RGBAColor = `rgba(${number}, ${number}, ${number}, ${number})`;
|
|
14
|
+
type HEXColor = `#${string}`;
|
|
15
|
+
type ThemeColor = `@${string}`;
|
|
16
|
+
type Color = RGBColor | RGBAColor | HEXColor;
|
|
17
|
+
|
|
18
|
+
interface AppPlus {
|
|
19
|
+
/**
|
|
20
|
+
* 窗体背景色。无论vue页面还是nvue页面,在App上都有一个父级原生窗体,该窗体的背景色生效时间快于页面里的css生效时间
|
|
21
|
+
* @default "#FFFFFF"
|
|
22
|
+
* @desc App
|
|
23
|
+
*/
|
|
24
|
+
background?: HEXColor;
|
|
25
|
+
/**
|
|
26
|
+
* 导航栏 ,详见?:导航栏; 设置为 false 不显示默认导航栏
|
|
27
|
+
* @desc App、H5
|
|
28
|
+
*/
|
|
29
|
+
titleNView?: object | false;
|
|
30
|
+
/**
|
|
31
|
+
* 原生子窗体,详见?:原生子窗体
|
|
32
|
+
* @desc App 1.9.10+
|
|
33
|
+
*/
|
|
34
|
+
subNVues?: object;
|
|
35
|
+
/**
|
|
36
|
+
* 页面回弹效果,设置为 "none" 时关闭效果。
|
|
37
|
+
* @desc App-vue(nvue Android无页面级bounce效果,仅list、recycle-list、waterfall等滚动组件有bounce效果)
|
|
38
|
+
*/
|
|
39
|
+
bounce?: string;
|
|
40
|
+
/**
|
|
41
|
+
* 侧滑返回功能,可选值:"close"(启用侧滑返回)、"none"(禁用侧滑返回)
|
|
42
|
+
* @default "close"
|
|
43
|
+
* @desc App-iOS
|
|
44
|
+
*/
|
|
45
|
+
popGesture?: string;
|
|
46
|
+
/**
|
|
47
|
+
* iOS软键盘上完成工具栏的显示模式,设置为 "none" 时关闭工具栏。
|
|
48
|
+
* @default "auto"
|
|
49
|
+
* @desc App-iOS
|
|
50
|
+
*/
|
|
51
|
+
softInputNavBar?: string;
|
|
52
|
+
/**
|
|
53
|
+
* 软键盘弹出模式,支持 adjustResize、adjustPan 两种模式
|
|
54
|
+
* @default "adjustPan"
|
|
55
|
+
* @desc App
|
|
56
|
+
*/
|
|
57
|
+
softInputMode?: string;
|
|
58
|
+
/**
|
|
59
|
+
* 下拉刷新
|
|
60
|
+
* @desc App
|
|
61
|
+
*/
|
|
62
|
+
pullToRefresh?: object;
|
|
63
|
+
/**
|
|
64
|
+
* 滚动条显示策略,设置为 "none" 时不显示滚动条。
|
|
65
|
+
* @desc App
|
|
66
|
+
*/
|
|
67
|
+
scrollIndicator?: string;
|
|
68
|
+
/**
|
|
69
|
+
* 窗口显示的动画效果,详见:窗口动画。
|
|
70
|
+
* @default "pop-in"
|
|
71
|
+
* @desc App
|
|
72
|
+
*/
|
|
73
|
+
animationType?: string;
|
|
74
|
+
/**
|
|
75
|
+
* 窗口显示动画的持续时间,单位为 ms。
|
|
76
|
+
* @default "300"
|
|
77
|
+
* @desc App
|
|
78
|
+
*/
|
|
79
|
+
animationDuration?: number;
|
|
80
|
+
[x: string]: any;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
interface H5 {
|
|
84
|
+
/**
|
|
85
|
+
* 背景颜色,颜色值格式为"#RRGGBB"。
|
|
86
|
+
* @default "#F7F7F7"
|
|
87
|
+
* @desc
|
|
88
|
+
*/
|
|
89
|
+
backgroundColor?: HEXColor;
|
|
90
|
+
/**
|
|
91
|
+
* 自定义按钮,参考 buttons
|
|
92
|
+
* @desc
|
|
93
|
+
*/
|
|
94
|
+
buttons?: any[];
|
|
95
|
+
/**
|
|
96
|
+
* 标题文字颜色
|
|
97
|
+
* @default "#000000"
|
|
98
|
+
* @desc
|
|
99
|
+
*/
|
|
100
|
+
titleColor?: HEXColor;
|
|
101
|
+
/**
|
|
102
|
+
* 标题文字内容
|
|
103
|
+
* @desc
|
|
104
|
+
*/
|
|
105
|
+
titleText?: string;
|
|
106
|
+
/**
|
|
107
|
+
* 标题文字字体大小
|
|
108
|
+
* @desc
|
|
109
|
+
*/
|
|
110
|
+
titleSize?: string;
|
|
111
|
+
/**
|
|
112
|
+
* 导航栏样式。"default"-默认样式;"transparent"-透明渐变。
|
|
113
|
+
* @default "default"
|
|
114
|
+
* @desc
|
|
115
|
+
*/
|
|
116
|
+
type?: string;
|
|
117
|
+
/**
|
|
118
|
+
* 导航栏上的搜索框样式,详见:searchInput
|
|
119
|
+
* @desc 1.6.5
|
|
120
|
+
*/
|
|
121
|
+
searchInput?: object;
|
|
122
|
+
[x: string]: any;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
interface GlobalStyle {
|
|
126
|
+
/**
|
|
127
|
+
* 导航栏背景颜色(同状态栏背景色)
|
|
128
|
+
* @default "#F7F7F7"
|
|
129
|
+
* @desc APP与H5为#F7F7F7,小程序平台请参考相应小程序文档
|
|
130
|
+
*/
|
|
131
|
+
navigationBarBackgroundColor?: HEXColor | ThemeColor;
|
|
132
|
+
/**
|
|
133
|
+
* 导航栏标题颜色及状态栏前景颜色,仅支持 black/white
|
|
134
|
+
* @default "white"
|
|
135
|
+
* @desc 支付宝小程序不支持,请使用 my.setNavigationBar
|
|
136
|
+
*/
|
|
137
|
+
navigationBarTextStyle?: string;
|
|
138
|
+
/**
|
|
139
|
+
* 导航栏标题文字内容
|
|
140
|
+
* @desc
|
|
141
|
+
*/
|
|
142
|
+
navigationBarTitleText?: string;
|
|
143
|
+
/**
|
|
144
|
+
* 导航栏样式,仅支持 default/custom。custom即取消默认的原生导航栏,需看使用注意
|
|
145
|
+
* @default "default"
|
|
146
|
+
* @desc 微信小程序 7.0+、百度小程序、H5、App(2.0.3+)
|
|
147
|
+
*/
|
|
148
|
+
navigationStyle?: string;
|
|
149
|
+
/**
|
|
150
|
+
* 下拉显示出来的窗口的背景色
|
|
151
|
+
* @default "#ffffff"
|
|
152
|
+
* @desc 微信小程序
|
|
153
|
+
*/
|
|
154
|
+
backgroundColor?: HEXColor | ThemeColor;
|
|
155
|
+
/**
|
|
156
|
+
* 下拉 loading 的样式,仅支持 dark / light
|
|
157
|
+
* @default "dark"
|
|
158
|
+
* @desc 微信小程序
|
|
159
|
+
*/
|
|
160
|
+
backgroundTextStyle?: string;
|
|
161
|
+
/**
|
|
162
|
+
* 是否开启下拉刷新,详见页面生命周期。
|
|
163
|
+
* @default "false"
|
|
164
|
+
* @desc
|
|
165
|
+
*/
|
|
166
|
+
enablePullDownRefresh?: boolean;
|
|
167
|
+
/**
|
|
168
|
+
* 页面上拉触底事件触发时距页面底部距离,单位只支持px,详见页面生命周期
|
|
169
|
+
* @default "50"
|
|
170
|
+
* @desc
|
|
171
|
+
*/
|
|
172
|
+
onReachBottomDistance?: number;
|
|
173
|
+
/**
|
|
174
|
+
* 顶部窗口的背景色(bounce回弹区域)
|
|
175
|
+
* @default "#ffffff"
|
|
176
|
+
* @desc 仅 iOS 平台
|
|
177
|
+
*/
|
|
178
|
+
backgroundColorTop?: HEXColor | ThemeColor;
|
|
179
|
+
/**
|
|
180
|
+
* 底部窗口的背景色(bounce回弹区域)
|
|
181
|
+
* @default "#ffffff"
|
|
182
|
+
* @desc 仅 iOS 平台
|
|
183
|
+
*/
|
|
184
|
+
backgroundColorBottom?: HEXColor | ThemeColor;
|
|
185
|
+
/**
|
|
186
|
+
* 导航栏图片地址(替换当前文字标题),支付宝小程序内必须使用https的图片链接地址
|
|
187
|
+
* @desc 支付宝小程序、H5、APP
|
|
188
|
+
*/
|
|
189
|
+
titleImage?: string;
|
|
190
|
+
/**
|
|
191
|
+
* 导航栏整体(前景、背景)透明设置。支持 always 一直透明 / auto 滑动自适应 / none 不透明
|
|
192
|
+
* @default "none"
|
|
193
|
+
* @desc 支付宝小程序、H5、APP
|
|
194
|
+
*/
|
|
195
|
+
transparentTitle?: string;
|
|
196
|
+
/**
|
|
197
|
+
* 导航栏点击穿透
|
|
198
|
+
* @default "NO"
|
|
199
|
+
* @desc 支付宝小程序、H5
|
|
200
|
+
*/
|
|
201
|
+
titlePenetrate?: string;
|
|
202
|
+
/**
|
|
203
|
+
* 横屏配置,屏幕旋转设置,仅支持 auto / portrait / landscape 详见 响应显示区域变化
|
|
204
|
+
* @default "portrait"
|
|
205
|
+
* @desc App 2.4.7+、微信小程序、QQ小程序
|
|
206
|
+
*/
|
|
207
|
+
pageOrientation?: string;
|
|
208
|
+
/**
|
|
209
|
+
* 窗口显示的动画效果,详见:窗口动画
|
|
210
|
+
* @default "pop-in"
|
|
211
|
+
* @desc App
|
|
212
|
+
*/
|
|
213
|
+
animationType?: string;
|
|
214
|
+
/**
|
|
215
|
+
* 窗口显示动画的持续时间,单位为 ms
|
|
216
|
+
* @default "300"
|
|
217
|
+
* @desc App
|
|
218
|
+
*/
|
|
219
|
+
animationDuration?: number;
|
|
220
|
+
/**
|
|
221
|
+
* 设置编译到 App 平台的特定样式,配置项参考下方 app-plus
|
|
222
|
+
* @desc App
|
|
223
|
+
*/
|
|
224
|
+
'app-plus'?: AppPlus;
|
|
225
|
+
/**
|
|
226
|
+
* 设置编译到 H5 平台的特定样式,配置项参考下方 H5
|
|
227
|
+
* @type H5
|
|
228
|
+
* @desc H5
|
|
229
|
+
*/
|
|
230
|
+
h5?: H5;
|
|
231
|
+
/**
|
|
232
|
+
* 设置编译到 mp-alipay 平台的特定样式,配置项参考下方 MP-ALIPAY
|
|
233
|
+
* @desc 支付宝小程序
|
|
234
|
+
*/
|
|
235
|
+
'mp-alipay'?: object;
|
|
236
|
+
/**
|
|
237
|
+
* 设置编译到 mp-weixin 平台的特定样式
|
|
238
|
+
* @desc 微信小程序
|
|
239
|
+
*/
|
|
240
|
+
'mp-weixin'?: object;
|
|
241
|
+
/**
|
|
242
|
+
* 设置编译到 mp-baidu 平台的特定样式
|
|
243
|
+
* @desc 百度小程序
|
|
244
|
+
*/
|
|
245
|
+
'mp-baidu'?: object;
|
|
246
|
+
/**
|
|
247
|
+
* 设置编译到 mp-toutiao 平台的特定样式
|
|
248
|
+
* @desc 字节跳动小程序
|
|
249
|
+
*/
|
|
250
|
+
'mp-toutiao'?: object;
|
|
251
|
+
/**
|
|
252
|
+
* 设置编译到 mp-lark 平台的特定样式
|
|
253
|
+
* @desc 飞书小程序
|
|
254
|
+
*/
|
|
255
|
+
'mp-lark'?: object;
|
|
256
|
+
/**
|
|
257
|
+
* 设置编译到 mp-qq 平台的特定样式
|
|
258
|
+
* @desc QQ小程序
|
|
259
|
+
*/
|
|
260
|
+
'mp-qq'?: object;
|
|
261
|
+
/**
|
|
262
|
+
* 设置编译到 mp-kuaishou 平台的特定样式
|
|
263
|
+
* @desc 快手小程序
|
|
264
|
+
*/
|
|
265
|
+
'mp-kuaishou'?: object;
|
|
266
|
+
/**
|
|
267
|
+
* 设置编译到 mp-jd 平台的特定样式
|
|
268
|
+
* @desc 京东小程序
|
|
269
|
+
*/
|
|
270
|
+
'mp-jd'?: object;
|
|
271
|
+
/**
|
|
272
|
+
* 引用小程序组件,参考 小程序组件
|
|
273
|
+
* @type Record<string, string>
|
|
274
|
+
* @desc
|
|
275
|
+
*/
|
|
276
|
+
usingComponents?: Record<string, string>;
|
|
277
|
+
/**
|
|
278
|
+
* 同层渲染,webrtc(实时音视频) 无法正常时尝试配置 seperated 强制关掉同层
|
|
279
|
+
* @desc 微信小程序
|
|
280
|
+
*/
|
|
281
|
+
renderingMode?: string;
|
|
282
|
+
/**
|
|
283
|
+
* 当存在 leftWindow 时,默认是否显示 leftWindow
|
|
284
|
+
* @default "true"
|
|
285
|
+
* @desc H5
|
|
286
|
+
*/
|
|
287
|
+
leftWindow?: boolean;
|
|
288
|
+
/**
|
|
289
|
+
* 当存在 topWindow 时,默认是否显示 topWindow
|
|
290
|
+
* @default "true"
|
|
291
|
+
* @desc H5
|
|
292
|
+
*/
|
|
293
|
+
topWindow?: boolean;
|
|
294
|
+
/**
|
|
295
|
+
* 当存在 rightWindow 时,默认是否显示 rightWindow
|
|
296
|
+
* @default "true"
|
|
297
|
+
* @desc H5
|
|
298
|
+
*/
|
|
299
|
+
rightWindow?: boolean;
|
|
300
|
+
/**
|
|
301
|
+
* rpx 计算所支持的最大设备宽度,单位 px
|
|
302
|
+
* @default "960"
|
|
303
|
+
* @desc App(vue2 且不含 nvue)、H5(2.8.12+)
|
|
304
|
+
*/
|
|
305
|
+
rpxCalcMaxDeviceWidth?: number;
|
|
306
|
+
/**
|
|
307
|
+
* rpx 计算使用的基准设备宽度,设备实际宽度超出 rpx 计算所支持的最大设备宽度时将按基准宽度计算,单位 px
|
|
308
|
+
* @default "375"
|
|
309
|
+
* @desc App(vue2 且不含 nvue)、H5(2.8.12+)
|
|
310
|
+
*/
|
|
311
|
+
rpxCalcBaseDeviceWidth?: number;
|
|
312
|
+
/**
|
|
313
|
+
* rpx 计算特殊处理的值,始终按实际的设备宽度计算,单位 rpx
|
|
314
|
+
* @default "750"
|
|
315
|
+
* @desc App(vue2 且不含 nvue)、H5(2.8.12+)
|
|
316
|
+
*/
|
|
317
|
+
rpxCalcIncludeWidth?: number;
|
|
318
|
+
/**
|
|
319
|
+
* 动态 rpx,屏幕大小变化会重新渲染 rpx
|
|
320
|
+
* @default "false"
|
|
321
|
+
* @desc App-nvue(vue3 固定值为 true) 3.2.13+
|
|
322
|
+
*/
|
|
323
|
+
dynamicRpx?: boolean;
|
|
324
|
+
/**
|
|
325
|
+
* 单位px,当浏览器可见区域宽度大于maxWidth时,两侧留白,当小于等于maxWidth时,页面铺满;不同页面支持配置不同的maxWidth;maxWidth = leftWindow(可选)+page(页面主体)+rightWindow(可选)
|
|
326
|
+
* @desc H5(2.9.9+)
|
|
327
|
+
*/
|
|
328
|
+
maxWidth?: number;
|
|
329
|
+
[x: string]: any;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
interface IconFont {
|
|
333
|
+
/**
|
|
334
|
+
* 字库 Unicode 码
|
|
335
|
+
*/
|
|
336
|
+
text?: string;
|
|
337
|
+
/**
|
|
338
|
+
* 选中后字库 Unicode 码
|
|
339
|
+
*/
|
|
340
|
+
selectedText?: string;
|
|
341
|
+
/**
|
|
342
|
+
* 字体图标字号(px)
|
|
343
|
+
*/
|
|
344
|
+
fontSize?: string;
|
|
345
|
+
/**
|
|
346
|
+
* 字体图标颜色
|
|
347
|
+
*/
|
|
348
|
+
color?: string;
|
|
349
|
+
/**
|
|
350
|
+
* 字体图标选中颜色
|
|
351
|
+
*/
|
|
352
|
+
selectedColor?: string;
|
|
353
|
+
}
|
|
354
|
+
interface TabBarItem {
|
|
355
|
+
/**
|
|
356
|
+
* 页面路径,必须在 pages 中先定义
|
|
357
|
+
*/
|
|
358
|
+
pagePath?: string;
|
|
359
|
+
/**
|
|
360
|
+
* tab 上按钮文字,在 App 和 H5 平台为非必填。例如中间可放一个没有文字的+号图标
|
|
361
|
+
*/
|
|
362
|
+
text?: string;
|
|
363
|
+
/**
|
|
364
|
+
* 图片路径,icon 大小限制为40kb,建议尺寸为 81px * 81px,
|
|
365
|
+
* 当 position 为 top 时,此参数无效,不支持网络图片,不支持字体图标
|
|
366
|
+
*/
|
|
367
|
+
iconPath?: string;
|
|
368
|
+
/**
|
|
369
|
+
* 选中时的图片路径,icon 大小限制为40kb,建议尺寸为 81px * 81px ,当 position 为 top 时,此参数无效
|
|
370
|
+
*/
|
|
371
|
+
selectedIconPath?: string;
|
|
372
|
+
/**
|
|
373
|
+
* 该项是否显示,默认显示
|
|
374
|
+
* @desc App (3.2.10+)、H5 (3.2.10+)
|
|
375
|
+
*/
|
|
376
|
+
visible?: boolean;
|
|
377
|
+
/**
|
|
378
|
+
* 字体图标,优先级高于 iconPath
|
|
379
|
+
* @desc App(3.4.4+)、H5 (3.5.3+)
|
|
380
|
+
*/
|
|
381
|
+
iconfont?: IconFont;
|
|
382
|
+
[x: string]: any;
|
|
383
|
+
}
|
|
384
|
+
interface MidButton {
|
|
385
|
+
/**
|
|
386
|
+
* 中间按钮的宽度,tabBar 其它项为减去此宽度后平分,默认值为与其它项平分宽度
|
|
387
|
+
* @default "80px"
|
|
388
|
+
*/
|
|
389
|
+
width?: string;
|
|
390
|
+
/**
|
|
391
|
+
* 中间按钮的高度,可以大于 tabBar 高度,达到中间凸起的效果
|
|
392
|
+
* @default "50px"
|
|
393
|
+
*/
|
|
394
|
+
height?: string;
|
|
395
|
+
/**
|
|
396
|
+
* 中间按钮的文字
|
|
397
|
+
*/
|
|
398
|
+
text?: string;
|
|
399
|
+
/**
|
|
400
|
+
* 中间按钮的图片路径
|
|
401
|
+
*/
|
|
402
|
+
iconPath?: string;
|
|
403
|
+
/**
|
|
404
|
+
* 图片宽度(高度等比例缩放)
|
|
405
|
+
* @default "24px"
|
|
406
|
+
*/
|
|
407
|
+
iconWidth?: string;
|
|
408
|
+
/**
|
|
409
|
+
* 中间按钮的背景图片路径
|
|
410
|
+
*/
|
|
411
|
+
backgroundImage?: string;
|
|
412
|
+
/**
|
|
413
|
+
* 字体图标,优先级高于 iconPath
|
|
414
|
+
*/
|
|
415
|
+
iconfont?: IconFont;
|
|
416
|
+
}
|
|
417
|
+
interface TabBar {
|
|
418
|
+
/**
|
|
419
|
+
* tab 上的文字默认颜色
|
|
420
|
+
*/
|
|
421
|
+
color?: Color | ThemeColor;
|
|
422
|
+
/**
|
|
423
|
+
* tab 上的文字选中时的颜色
|
|
424
|
+
*/
|
|
425
|
+
selectedColor?: Color | ThemeColor;
|
|
426
|
+
/**
|
|
427
|
+
* tab 的背景色
|
|
428
|
+
*/
|
|
429
|
+
backgroundColor?: Color | ThemeColor;
|
|
430
|
+
/**
|
|
431
|
+
* tabbar 上边框的颜色,可选值 black/white,也支持其他颜色值
|
|
432
|
+
* @default "black"
|
|
433
|
+
* @desc App 2.3.4+ 、H5 3.0.0+
|
|
434
|
+
*/
|
|
435
|
+
borderStyle?: string | ThemeColor;
|
|
436
|
+
/**
|
|
437
|
+
* iOS 高斯模糊效果,可选值 dark/extralight/light/none(参考?:使用说明)
|
|
438
|
+
* @default "none"
|
|
439
|
+
* @desc App 2.4.0+ 支持、H5 3.0.0+(只有最新版浏览器才支持)
|
|
440
|
+
*/
|
|
441
|
+
blurEffect?: string;
|
|
442
|
+
/**
|
|
443
|
+
* tab 的列表,详见 list 属性说明,最少2个、最多5个 tab
|
|
444
|
+
* @type TabBarItem[]
|
|
445
|
+
*/
|
|
446
|
+
list?: TabBarItem[];
|
|
447
|
+
/**
|
|
448
|
+
* 可选值 bottom、top
|
|
449
|
+
* @default "bottom"
|
|
450
|
+
* @desc top 值仅微信小程序支持
|
|
451
|
+
*/
|
|
452
|
+
position?: string;
|
|
453
|
+
/**
|
|
454
|
+
* 文字默认大小
|
|
455
|
+
* @default "10px"
|
|
456
|
+
* @desc App 2.3.4+、H5 3.0.0+
|
|
457
|
+
*/
|
|
458
|
+
fontSize?: string;
|
|
459
|
+
/**
|
|
460
|
+
* 图标默认宽度(高度等比例缩放)
|
|
461
|
+
* @default "24px"
|
|
462
|
+
* @desc App 2.3.4+、H5 3.0.0+
|
|
463
|
+
*/
|
|
464
|
+
iconWidth?: string;
|
|
465
|
+
/**
|
|
466
|
+
* 图标和文字的间距
|
|
467
|
+
* @default "3px"
|
|
468
|
+
* @desc App 2.3.4+、H5 3.0.0+
|
|
469
|
+
*/
|
|
470
|
+
spacing?: string;
|
|
471
|
+
/**
|
|
472
|
+
* tabBar 默认高度
|
|
473
|
+
* @default "50px"
|
|
474
|
+
* @desc App 2.3.4+、H5 3.0.0+
|
|
475
|
+
*/
|
|
476
|
+
height?: string;
|
|
477
|
+
/**
|
|
478
|
+
* 中间按钮 仅在 list 项为偶数时有效
|
|
479
|
+
* @desc App 2.3.4+、H5 3.0.0+
|
|
480
|
+
*/
|
|
481
|
+
midButton?: MidButton;
|
|
482
|
+
/**
|
|
483
|
+
* list设置 iconfont 属性时,需要指定字体文件路径
|
|
484
|
+
* @desc App 3.4.4+、H5 3.5.3+
|
|
485
|
+
*/
|
|
486
|
+
iconfontSrc?: string;
|
|
487
|
+
[x: string]: any;
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
interface TheWindow {
|
|
491
|
+
/**
|
|
492
|
+
* 配置页面路径
|
|
493
|
+
*/
|
|
494
|
+
path: string;
|
|
495
|
+
/**
|
|
496
|
+
* 配置页面窗口表现,配置项参考下方 pageStyle
|
|
497
|
+
*/
|
|
498
|
+
style?: GlobalStyle;
|
|
499
|
+
/**
|
|
500
|
+
* 配置显示该窗口的规则,配置项参考下方 matchMedia
|
|
501
|
+
*/
|
|
502
|
+
matchMedia?: {
|
|
503
|
+
/**
|
|
504
|
+
* 当设备可见区域宽度 >= minWidth 时,显示该 window
|
|
505
|
+
* @default "768"
|
|
506
|
+
*/
|
|
507
|
+
minWidth?: number;
|
|
508
|
+
};
|
|
509
|
+
}
|
|
510
|
+
interface PreloadRule {
|
|
511
|
+
/**
|
|
512
|
+
* 进入页面后预下载分包的 root 或 name。__APP__ 表示主包。
|
|
513
|
+
*/
|
|
514
|
+
packages?: string[];
|
|
515
|
+
/**
|
|
516
|
+
* 在指定网络下预下载,可选值为:all(不限网络)、wifi(仅wifi下预下载)
|
|
517
|
+
* @default "wifi"
|
|
518
|
+
*/
|
|
519
|
+
network?: string;
|
|
520
|
+
}
|
|
521
|
+
interface UniIdRouter {
|
|
522
|
+
/**
|
|
523
|
+
* 登录页面路径
|
|
524
|
+
*/
|
|
525
|
+
loginPage: string;
|
|
526
|
+
/**
|
|
527
|
+
* 需要登录才可以访问的页面列表,可以使用正则语法
|
|
528
|
+
*/
|
|
529
|
+
needLogin: string[];
|
|
530
|
+
/**
|
|
531
|
+
* 是否自动解析云对象及 clientDB 的错误码,如果是客户端 token 不正确或 token 过期则自动跳转配置的登录页面
|
|
532
|
+
*
|
|
533
|
+
* @default true
|
|
534
|
+
*/
|
|
535
|
+
resToLogin?: boolean;
|
|
536
|
+
}
|
|
537
|
+
interface SubPackage {
|
|
538
|
+
/**
|
|
539
|
+
* 子包的根目录
|
|
540
|
+
*/
|
|
541
|
+
root?: string;
|
|
542
|
+
/**
|
|
543
|
+
* 子包由哪些页面组成,参数同 pages
|
|
544
|
+
*/
|
|
545
|
+
pages?: any[];
|
|
546
|
+
}
|
|
547
|
+
interface ConditionItem {
|
|
548
|
+
/**
|
|
549
|
+
* 启动模式名称
|
|
550
|
+
*/
|
|
551
|
+
name?: string;
|
|
552
|
+
/**
|
|
553
|
+
* 启动页面路径
|
|
554
|
+
*/
|
|
555
|
+
path: string;
|
|
556
|
+
/**
|
|
557
|
+
* 启动参数,可在页面的 onLoad 函数里获得
|
|
558
|
+
*/
|
|
559
|
+
query?: string;
|
|
560
|
+
}
|
|
561
|
+
interface Condition {
|
|
562
|
+
/**
|
|
563
|
+
* 当前激活的模式,list节点的索引值
|
|
564
|
+
*/
|
|
565
|
+
current?: number;
|
|
566
|
+
/**
|
|
567
|
+
* 启动模式列表
|
|
568
|
+
*/
|
|
569
|
+
list?: Partial<ConditionItem>[];
|
|
570
|
+
}
|
|
571
|
+
interface PagesConfig {
|
|
572
|
+
/**
|
|
573
|
+
* 设置页面路径及窗口表现
|
|
574
|
+
*/
|
|
575
|
+
pages?: PageMetaDatum[];
|
|
576
|
+
/**
|
|
577
|
+
* 设置默认页面的窗口表现
|
|
578
|
+
*/
|
|
579
|
+
globalStyle?: GlobalStyle;
|
|
580
|
+
/**
|
|
581
|
+
* 组件自动引入规则
|
|
582
|
+
* @desc 2.5.5+
|
|
583
|
+
*/
|
|
584
|
+
easycom?: EasyCom;
|
|
585
|
+
/**
|
|
586
|
+
* 设置底部 tab 的表现
|
|
587
|
+
*/
|
|
588
|
+
tabBar?: TabBar;
|
|
589
|
+
/**
|
|
590
|
+
* 启动模式配置
|
|
591
|
+
*/
|
|
592
|
+
condition?: Condition;
|
|
593
|
+
/**
|
|
594
|
+
* 分包加载配置
|
|
595
|
+
*/
|
|
596
|
+
subPackages?: SubPackage[];
|
|
597
|
+
/**
|
|
598
|
+
* 分包预下载规则
|
|
599
|
+
* @desc 微信小程序
|
|
600
|
+
*/
|
|
601
|
+
preloadRule?: {
|
|
602
|
+
[path: string]: PreloadRule;
|
|
603
|
+
};
|
|
604
|
+
/**
|
|
605
|
+
* `Worker` 代码放置的目录
|
|
606
|
+
* @desc 微信小程序
|
|
607
|
+
*/
|
|
608
|
+
workers?: any;
|
|
609
|
+
/**
|
|
610
|
+
* 大屏左侧窗口
|
|
611
|
+
* @desc H5
|
|
612
|
+
*/
|
|
613
|
+
leftWindow?: TheWindow;
|
|
614
|
+
/**
|
|
615
|
+
* 大屏顶部窗口
|
|
616
|
+
* @desc H5
|
|
617
|
+
*/
|
|
618
|
+
topWindow?: TheWindow;
|
|
619
|
+
/**
|
|
620
|
+
* 大屏右侧窗口
|
|
621
|
+
* @desc H5
|
|
622
|
+
*/
|
|
623
|
+
rightWindow?: TheWindow;
|
|
624
|
+
/**
|
|
625
|
+
* 自动跳转相关配置,新增于 HBuilderX 3.5.0
|
|
626
|
+
*/
|
|
627
|
+
uniIdRouter?: UniIdRouter;
|
|
628
|
+
/**
|
|
629
|
+
* 默认启动首页,新增于 HBuilderX 3.7.0
|
|
630
|
+
*/
|
|
631
|
+
entryPagePath?: string;
|
|
632
|
+
[x: string]: any;
|
|
633
|
+
}
|
|
634
|
+
interface UserPagesConfig extends PagesConfig {
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
declare function defineUniPages(config: UserPagesConfig): UserPagesConfig;
|
|
638
|
+
|
|
639
|
+
declare class PageContext {
|
|
640
|
+
private _server;
|
|
641
|
+
pagesGlobConfig: PagesConfig | undefined;
|
|
642
|
+
pagesPath: PagePath[];
|
|
643
|
+
subPagesPath: Record<string, PagePath[]>;
|
|
644
|
+
pageMetaData: PageMetaDatum[];
|
|
645
|
+
subPageMetaData: SubPageMetaDatum[];
|
|
646
|
+
resolvedPagesJSONPath: string;
|
|
647
|
+
rawOptions: UserOptions;
|
|
648
|
+
root: string;
|
|
649
|
+
options: ResolvedOptions;
|
|
650
|
+
logger?: Logger;
|
|
651
|
+
constructor(userOptions: UserOptions, viteRoot?: string);
|
|
652
|
+
setLogger(logger: Logger): void;
|
|
653
|
+
loadUserPagesConfig(): Promise<void>;
|
|
654
|
+
scanPages(): Promise<void>;
|
|
655
|
+
scanSubPages(): Promise<void>;
|
|
656
|
+
setupViteServer(server: ViteDevServer): void;
|
|
657
|
+
setupWatcher(watcher: FSWatcher): Promise<void>;
|
|
658
|
+
onUpdate(): void;
|
|
659
|
+
parsePage(page: PagePath): Promise<PageMetaDatum>;
|
|
660
|
+
parsePages(pages: PagePath[], overrides?: PageMetaDatum[]): Promise<PageMetaDatum[]>;
|
|
661
|
+
setHomePage(result: PageMetaDatum[]): true | undefined;
|
|
662
|
+
mergePageMetaData(): Promise<void>;
|
|
663
|
+
mergeSubPageMetaData(): Promise<void>;
|
|
664
|
+
updatePagesJSON(filepath?: string): Promise<boolean>;
|
|
665
|
+
virtualModule(): string;
|
|
666
|
+
resolveRoutes(): string;
|
|
667
|
+
resolveSubRoutes(): string;
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
declare function invalidatePagesModule(server: ViteDevServer): void;
|
|
671
|
+
declare const debug: {
|
|
672
|
+
hmr: Debug.Debugger;
|
|
673
|
+
routeBlock: Debug.Debugger;
|
|
674
|
+
options: Debug.Debugger;
|
|
675
|
+
pages: Debug.Debugger;
|
|
676
|
+
subPages: Debug.Debugger;
|
|
677
|
+
error: Debug.Debugger;
|
|
678
|
+
cache: Debug.Debugger;
|
|
679
|
+
};
|
|
680
|
+
declare function extsToGlob(extensions: string[]): string;
|
|
681
|
+
declare function isTargetFile(path: string): boolean;
|
|
682
|
+
declare function isConfigFile(path: string): boolean;
|
|
683
|
+
/**
|
|
684
|
+
* merge page meta data array by path and assign style
|
|
685
|
+
* @param pageMetaData page meta data array
|
|
686
|
+
* TODO: support merge middleware
|
|
687
|
+
*/
|
|
688
|
+
declare function mergePageMetaDataArray(pageMetaData: PageMetaDatum[]): PageMetaDatum[];
|
|
689
|
+
declare function getPagesConfigSourcePaths(configSource: LoadConfigSource<PagesConfig>[]): Promise<string[]>;
|
|
690
|
+
declare function useCachedPages(): {
|
|
691
|
+
setCache: (filePath: string, routeBlock?: SFCBlock) => void;
|
|
692
|
+
hasChanged: (filePath: string, routeBlock?: SFCBlock) => Promise<boolean>;
|
|
693
|
+
};
|
|
694
|
+
|
|
695
|
+
interface CustomBlock {
|
|
696
|
+
attr: Record<string, any>;
|
|
697
|
+
content: Record<string, any>;
|
|
698
|
+
}
|
|
699
|
+
type debugType = keyof typeof debug;
|
|
700
|
+
type ConfigSource = string | LoadConfigSource<PagesConfig> | LoadConfigSource<PagesConfig>[];
|
|
701
|
+
interface Options {
|
|
702
|
+
/**
|
|
703
|
+
* Load from configs files
|
|
704
|
+
*
|
|
705
|
+
* @default 'pages.config.(ts|mts|cts|js|cjs|mjs|json)',
|
|
706
|
+
*/
|
|
707
|
+
configSource: ConfigSource;
|
|
708
|
+
/**
|
|
709
|
+
* The default application entry page is the home page
|
|
710
|
+
* @default 'pages/index' or 'pages/index/index'
|
|
711
|
+
*/
|
|
712
|
+
homePage: string;
|
|
713
|
+
/**
|
|
714
|
+
* Whether to merge pages in pages.json
|
|
715
|
+
* @default true
|
|
716
|
+
*/
|
|
717
|
+
mergePages: boolean;
|
|
718
|
+
/**
|
|
719
|
+
* Paths to the directory to search for page components.
|
|
720
|
+
* @default 'src/pages'
|
|
721
|
+
*/
|
|
722
|
+
dir: string;
|
|
723
|
+
/**
|
|
724
|
+
* all root directories loaded by subPackages
|
|
725
|
+
* @default []
|
|
726
|
+
*/
|
|
727
|
+
subPackages: string[];
|
|
728
|
+
/**
|
|
729
|
+
* pages.json dir
|
|
730
|
+
* @default "src"
|
|
731
|
+
*/
|
|
732
|
+
outDir: string;
|
|
733
|
+
/**
|
|
734
|
+
* exclude page
|
|
735
|
+
* @default []
|
|
736
|
+
*/
|
|
737
|
+
exclude: string[];
|
|
738
|
+
/**
|
|
739
|
+
* Set the default route block parser, or use `<route lang="xxx">` in SFC route block
|
|
740
|
+
* @default 'json5'
|
|
741
|
+
*/
|
|
742
|
+
routeBlockLang: 'json5' | 'json' | 'yaml' | 'yml';
|
|
743
|
+
/**
|
|
744
|
+
* minify the `pages.json`
|
|
745
|
+
* @default false
|
|
746
|
+
*/
|
|
747
|
+
minify: boolean;
|
|
748
|
+
/**
|
|
749
|
+
* enable debug log
|
|
750
|
+
*/
|
|
751
|
+
debug: boolean | debugType;
|
|
752
|
+
onBeforeLoadUserConfig: (ctx: PageContext) => void;
|
|
753
|
+
onAfterLoadUserConfig: (ctx: PageContext) => void;
|
|
754
|
+
onBeforeScanPages: (ctx: PageContext) => void;
|
|
755
|
+
onAfterScanPages: (ctx: PageContext) => void;
|
|
756
|
+
onBeforeMergePageMetaData: (ctx: PageContext) => void;
|
|
757
|
+
onAfterMergePageMetaData: (ctx: PageContext) => void;
|
|
758
|
+
onBeforeWriteFile: (ctx: PageContext) => void;
|
|
759
|
+
onAfterWriteFile: (ctx: PageContext) => void;
|
|
760
|
+
}
|
|
761
|
+
type UserOptions = Partial<Options>;
|
|
762
|
+
interface ResolvedOptions extends Omit<Options, 'dir' | 'homePage' | 'configSource'> {
|
|
763
|
+
/**
|
|
764
|
+
* Resolves to the `root` value from Vite config.
|
|
765
|
+
* @default config.root
|
|
766
|
+
*/
|
|
767
|
+
root: string;
|
|
768
|
+
/**
|
|
769
|
+
* Resolved page dirs
|
|
770
|
+
*/
|
|
771
|
+
dirs: string[];
|
|
772
|
+
/**
|
|
773
|
+
* Resolved entry page
|
|
774
|
+
*/
|
|
775
|
+
homePage: string[];
|
|
776
|
+
configSource: LoadConfigSource<PagesConfig>[];
|
|
777
|
+
}
|
|
778
|
+
interface PagePath {
|
|
779
|
+
relativePath: string;
|
|
780
|
+
absolutePath: string;
|
|
781
|
+
}
|
|
782
|
+
interface PageMetaDatum {
|
|
783
|
+
/**
|
|
784
|
+
* 配置页面路径
|
|
785
|
+
*/
|
|
786
|
+
path: string;
|
|
787
|
+
type?: string;
|
|
788
|
+
/**
|
|
789
|
+
* 配置页面窗口表现,配置项参考下方 pageStyle
|
|
790
|
+
*/
|
|
791
|
+
style?: GlobalStyle;
|
|
792
|
+
/**
|
|
793
|
+
* 当前页面是否需要登录才可以访问,此配置优先级高于 uniIdRouter 下的 needLogin
|
|
794
|
+
*/
|
|
795
|
+
needLogin?: boolean;
|
|
796
|
+
[x: string]: any;
|
|
797
|
+
}
|
|
798
|
+
interface SubPageMetaDatum {
|
|
799
|
+
root: string;
|
|
800
|
+
pages: PageMetaDatum[];
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
declare const MODULE_ID_VIRTUAL = "virtual:uni-pages";
|
|
804
|
+
declare const RESOLVED_MODULE_ID_VIRTUAL: string;
|
|
805
|
+
declare const OUTPUT_NAME = "pages.json";
|
|
806
|
+
declare const FILE_EXTENSIONS: string[];
|
|
807
|
+
|
|
808
|
+
/**
|
|
809
|
+
* Resolves the files that are valid pages for the given context.
|
|
810
|
+
*/
|
|
811
|
+
declare function getPageFiles(path: string, options: ResolvedOptions): string[];
|
|
812
|
+
declare function checkPagesJsonFile(path: string): boolean;
|
|
813
|
+
declare function writeFileSync(path: string, content: string): void;
|
|
814
|
+
|
|
815
|
+
declare function resolveOptions(userOptions: UserOptions, viteRoot?: string): ResolvedOptions;
|
|
816
|
+
/**
|
|
817
|
+
* Resolves the page dirs for its for its given globs
|
|
818
|
+
*/
|
|
819
|
+
declare function resolvePageDirs(dir: string, root: string, exclude: string[]): string[];
|
|
820
|
+
|
|
821
|
+
declare function parseSFC(code: string): Promise<SFCDescriptor>;
|
|
822
|
+
declare function parseCustomBlock(block: SFCBlock, filePath: string, options: ResolvedOptions): CustomBlock | undefined;
|
|
823
|
+
declare function getRouteSfcBlock(path: string): Promise<SFCBlock | undefined>;
|
|
824
|
+
declare function getRouteBlock(path: string, blockStr: SFCBlock | undefined, options: ResolvedOptions): Promise<CustomBlock | undefined>;
|
|
825
|
+
|
|
826
|
+
declare function VitePluginUniPages(userOptions?: UserOptions): Plugin;
|
|
827
|
+
|
|
828
|
+
export { type Condition, type ConditionItem, type ConfigSource, type CustomBlock, type EasyCom, FILE_EXTENSIONS, type GlobalStyle, type IconFont, MODULE_ID_VIRTUAL, type MidButton, OUTPUT_NAME, type Options, PageContext, type PageMetaDatum, type PagePath, type PagesConfig, type PreloadRule, RESOLVED_MODULE_ID_VIRTUAL, type ResolvedOptions, type SubPackage, type SubPageMetaDatum, type TabBar, type TabBarItem, type TheWindow, type UniIdRouter, type UserOptions, type UserPagesConfig, VitePluginUniPages, checkPagesJsonFile, debug, type debugType, VitePluginUniPages as default, defineUniPages, extsToGlob, getPageFiles, getPagesConfigSourcePaths, getRouteBlock, getRouteSfcBlock, invalidatePagesModule, isConfigFile, isTargetFile, mergePageMetaDataArray, parseCustomBlock, parseSFC, resolveOptions, resolvePageDirs, useCachedPages, writeFileSync };
|