@tarojs/taro 3.3.20 → 3.4.0-beta.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tarojs/taro",
3
- "version": "3.3.20",
3
+ "version": "3.4.0-beta.3",
4
4
  "description": "Taro framework",
5
5
  "homepage": "https://github.com/nervjs/taro/tree/master/packages/taro#readme",
6
6
  "main": "index.js",
@@ -24,9 +24,9 @@
24
24
  "author": "O2Team",
25
25
  "license": "MIT",
26
26
  "dependencies": {
27
- "@tarojs/api": "3.3.20",
28
- "@tarojs/runtime": "3.3.20",
29
- "@tarojs/taro-h5": "3.3.20"
27
+ "@tarojs/api": "3.4.0-beta.3",
28
+ "@tarojs/runtime": "3.4.0-beta.3",
29
+ "@tarojs/taro-h5": "3.4.0-beta.3"
30
30
  },
31
- "gitHead": "f98ceefaa3e419db5a6c3bcd3bf123ce5a0a0124"
31
+ "gitHead": "2ef7e8c10c9e5784e98bb1ad3a803d5fd6a46c8b"
32
32
  }
@@ -53,12 +53,12 @@ export type IOption = Record<string, any>
53
53
 
54
54
  export interface ICopyOptions {
55
55
  patterns: {
56
- from: string,
57
- to: string,
58
- ignore?: string[],
59
- transform?: Function,
56
+ from: string
57
+ to: string
58
+ ignore?: string[]
59
+ transform?: Function
60
60
  watch?: boolean
61
- }[],
61
+ }[]
62
62
  options: {
63
63
  ignore?: string[]
64
64
  }
@@ -68,11 +68,11 @@ export interface ISassOptions {
68
68
  /**
69
69
  * 引入的全局 sass 文件,如果要引入多个文件,支持数组形式传入
70
70
  */
71
- resource?: string | string[],
71
+ resource?: string | string[]
72
72
  /**
73
73
  * 项目根目录的绝对地址(若为小程序云开发模板,则应该是client目录)
74
74
  */
75
- projectDirectory?: string,
75
+ projectDirectory?: string
76
76
  /**
77
77
  * 全局 scss 变量,若 data 与 resource 中设置了同样的变量,则 data 的优先级高于 resource
78
78
  */
@@ -89,21 +89,21 @@ export namespace PostcssOption {
89
89
  generateScopedName: string | ((localName: string, absoluteFilePath: string) => string)
90
90
  }>
91
91
  export type url = TogglableOptions<{
92
- limit: number,
92
+ limit: number
93
93
  basePath?: string | string[]
94
94
  }>
95
95
  }
96
96
 
97
97
  export interface IPostcssOption {
98
- autoprefixer?: TogglableOptions,
99
- pxtransform?: TogglableOptions,
100
- cssModules?: PostcssOption.cssModules,
101
- url?: PostcssOption.url,
98
+ autoprefixer?: TogglableOptions
99
+ pxtransform?: TogglableOptions
100
+ cssModules?: PostcssOption.cssModules
101
+ url?: PostcssOption.url
102
102
  [key: string]: any
103
103
  }
104
104
 
105
105
  export interface ICompileOption {
106
- exclude?: string[],
106
+ exclude?: string[]
107
107
  include?: string[]
108
108
  }
109
109
 
@@ -113,85 +113,85 @@ interface Runtime {
113
113
  }
114
114
 
115
115
  export interface IMiniAppConfig {
116
- appOutput?: boolean,
117
- enableSourceMap?: boolean,
118
- sourceMapType?: string,
119
- debugReact?: boolean,
116
+ appOutput?: boolean
117
+ enableSourceMap?: boolean
118
+ sourceMapType?: string
119
+ debugReact?: boolean
120
120
  minifyXML?: {
121
121
  collapseWhitespace?: boolean
122
- },
123
-
124
- webpackChain?: (chain: any, webpack: any, PARSE_AST_TYPE: any) => void,
125
- entry?: webpack.Entry,
126
- output?: webpack.Output,
127
- postcss?: IPostcssOption,
128
- cssLoaderOption?: IOption,
129
- sassLoaderOption?: IOption,
130
- lessLoaderOption?: IOption,
131
- stylusLoaderOption?: IOption,
132
- mediaUrlLoaderOption?: IOption,
133
- fontUrlLoaderOption?: IOption,
134
- imageUrlLoaderOption?: IOption,
135
- miniCssExtractPluginOption?: IOption,
136
-
137
- customFilesTypes?: IMINI_APP_FILE_TYPE,
138
- commonChunks?: string[] | ((commonChunks: string[]) => string[]),
139
- addChunkPages?: ((pages: Map<string, string[]>, pagesNames?: string[]) => void),
122
+ }
123
+
124
+ webpackChain?: (chain: any, webpack: any, PARSE_AST_TYPE: any) => void
125
+ entry?: webpack.Entry
126
+ output?: webpack.Output
127
+ postcss?: IPostcssOption
128
+ cssLoaderOption?: IOption
129
+ sassLoaderOption?: IOption
130
+ lessLoaderOption?: IOption
131
+ stylusLoaderOption?: IOption
132
+ mediaUrlLoaderOption?: IOption
133
+ fontUrlLoaderOption?: IOption
134
+ imageUrlLoaderOption?: IOption
135
+ miniCssExtractPluginOption?: IOption
136
+
137
+ customFilesTypes?: IMINI_APP_FILE_TYPE
138
+ commonChunks?: string[] | ((commonChunks: string[]) => string[])
139
+ addChunkPages?: ((pages: Map<string, string[]>, pagesNames?: string[]) => void)
140
140
  optimizeMainPackage?: {
141
- enable?: boolean,
141
+ enable?: boolean
142
142
  exclude?: any[]
143
- },
143
+ }
144
144
 
145
145
  compile?: {
146
- exclude?: any[],
146
+ exclude?: any[]
147
147
  include?: any[]
148
148
  }
149
149
  runtime?: Runtime
150
150
  }
151
151
 
152
152
  export type TogglableOptions<T = IOption> = {
153
- enable?: boolean,
153
+ enable?: boolean
154
154
  config?: T
155
155
  }
156
156
 
157
157
  export interface IH5RouterConfig {
158
- mode?: 'hash' | 'browser' | 'multi',
159
- customRoutes?: IOption,
160
- basename?: string,
161
- lazyload?: boolean | ((pagename: string) => boolean),
158
+ mode?: 'hash' | 'browser' | 'multi'
159
+ customRoutes?: IOption
160
+ basename?: string
161
+ lazyload?: boolean | ((pagename: string) => boolean)
162
162
  renamePagename?: (pagename: string) => string
163
163
  forcePath?: string
164
164
  }
165
165
 
166
166
  export interface IH5Config {
167
- publicPath?: string,
168
- staticDirectory?: string,
169
- chunkDirectory?: string,
167
+ publicPath?: string
168
+ staticDirectory?: string
169
+ chunkDirectory?: string
170
170
 
171
171
  webpack?: ((webpackConfig: webpack.Configuration, webpack) => webpack.Configuration) | webpack.Configuration
172
172
 
173
- webpackChain?: (chain: any, webpack: any) => void,
174
-
175
- entry?: webpack.Entry,
176
- output?: webpack.Output,
177
- router?: IH5RouterConfig,
178
- devServer?: webpackDevServer.Configuration,
179
- enableSourceMap?: boolean,
180
- sourceMapType?: 'none' | 'eval' | 'cheap-eval-source-map' | 'cheap-module-eval-source-map' | 'eval-source-map' | 'cheap-source-map' | 'cheap-module-source-map' | 'inline-cheap-source-map' | 'inline-cheap-module-source-map' | 'source-map' | 'inline-source-map' | 'hidden-source-map' | 'nosources-source-map',
181
- enableExtract?: boolean,
182
- transformOnly?: boolean,
183
-
184
- cssLoaderOption?: IOption,
185
- styleLoaderOption?: IOption,
186
- sassLoaderOption?: IOption,
187
- lessLoaderOption?: IOption,
188
- stylusLoaderOption?: IOption,
189
- mediaUrlLoaderOption?: IOption,
190
- fontUrlLoaderOption?: IOption,
191
- imageUrlLoaderOption?: IOption,
192
- miniCssExtractPluginOption?: IOption,
193
- esnextModules?: string[],
194
- useHtmlComponents?: boolean,
173
+ webpackChain?: (chain: any, webpack: any) => void
174
+
175
+ entry?: webpack.Entry
176
+ output?: webpack.Output
177
+ router?: IH5RouterConfig
178
+ devServer?: webpackDevServer.Configuration
179
+ enableSourceMap?: boolean
180
+ sourceMapType?: 'none' | 'eval' | 'cheap-eval-source-map' | 'cheap-module-eval-source-map' | 'eval-source-map' | 'cheap-source-map' | 'cheap-module-source-map' | 'inline-cheap-source-map' | 'inline-cheap-module-source-map' | 'source-map' | 'inline-source-map' | 'hidden-source-map' | 'nosources-source-map'
181
+ enableExtract?: boolean
182
+ transformOnly?: boolean
183
+
184
+ cssLoaderOption?: IOption
185
+ styleLoaderOption?: IOption
186
+ sassLoaderOption?: IOption
187
+ lessLoaderOption?: IOption
188
+ stylusLoaderOption?: IOption
189
+ mediaUrlLoaderOption?: IOption
190
+ fontUrlLoaderOption?: IOption
191
+ imageUrlLoaderOption?: IOption
192
+ miniCssExtractPluginOption?: IOption
193
+ esnextModules?: string[]
194
+ useHtmlComponents?: boolean
195
195
 
196
196
  postcss?: IPostcssOption
197
197
  }
@@ -213,11 +213,11 @@ export type SystemConfig = {
213
213
  /**
214
214
  * 打印日志等级,分为 off,error,warn,info,log,debug
215
215
  */
216
- logLevel?: LogLevel,
216
+ logLevel?: LogLevel
217
217
  /**
218
218
  * 页面设计基准宽度,根据实际设备宽度来缩放元素大小
219
219
  */
220
- designWidth?: number,
220
+ designWidth?: number
221
221
  /**
222
222
  * 全局数据对象,属性名不能以$或_开头,在页面中可通过 this 进行访问;如果全局数据属性与页面的数据属性重名,则页面初始化时,全局数据会覆盖页面中对应的属性值
223
223
  */
@@ -228,7 +228,7 @@ type RouterConfig = {
228
228
  /**
229
229
  * 首页名称
230
230
  */
231
- entry: string,
231
+ entry: string
232
232
  /**
233
233
  * 页面配置列表,key 值为页面名称(对应页面目录名,例如 Hello 对应'Hello'目录),value 为页面详细配置 page
234
234
  */
@@ -238,14 +238,14 @@ type RouterPage = {
238
238
  /**
239
239
  * 页面对应的组件名,与 ux 文件名保持一致,例如'hello' 对应 'hello.ux'
240
240
  */
241
- component: string,
241
+ component: string
242
242
  /**
243
243
  * 页面路径,例如“/user”,不填则默认为/<页面名称>。
244
244
  * path 必须唯一,不能和其他 page 的 path 相同。
245
245
  * 下面 page 的 path 因为缺失,会被设置为“/Index”:
246
246
  * "Index": {"component": "index"}
247
247
  */
248
- path?: string,
248
+ path?: string
249
249
  /**
250
250
  * 声明页面可以处理某种请求
251
251
  */
@@ -260,31 +260,31 @@ interface IDefaultDisplayConfig {
260
260
  /**
261
261
  * 窗口背景颜色
262
262
  */
263
- backgroundColor?: string,
263
+ backgroundColor?: string
264
264
  /**
265
265
  * 是否是全屏模式,默认不会同时作用于 titleBar,titleBar 需要继续通过 titleBar 控制
266
266
  */
267
- fullScreen?: boolean,
267
+ fullScreen?: boolean
268
268
  /**
269
269
  * 是否显示 titleBar
270
270
  */
271
- titleBar?: boolean,
271
+ titleBar?: boolean
272
272
  /**
273
273
  * 标题栏背景色
274
274
  */
275
- titleBarBackgroundColor?: string,
275
+ titleBarBackgroundColor?: string
276
276
  /**
277
277
  * 标题栏文字颜色
278
278
  */
279
- titleBarTextColor?: string,
279
+ titleBarTextColor?: string
280
280
  /**
281
281
  * 标题栏文字(也可通过页面跳转传递参数(titleBarText)设置)
282
282
  */
283
- titleBarText?: string,
283
+ titleBarText?: string
284
284
  /**
285
285
  * 是否显示标题栏右上角菜单按钮,点击菜单按钮调用页面生命周期 onMenuPress 方法,如果该方法未实现则显示系统默认菜单
286
286
  */
287
- menu?: boolean,
287
+ menu?: boolean
288
288
  /**
289
289
  * 软键盘弹出时为保证输入框可见,页面的调整方式。 adjustPan:上移页面; adjustResize:压缩页面显示区域,当页面全屏时,此设置不生效
290
290
  */
@@ -304,31 +304,31 @@ export interface ITaroManifestConfig {
304
304
  /**
305
305
  * 应用包名,确认与原生应用的包名不一致,推荐采用 com.company.module 的格式,如:com.example.demo
306
306
  */
307
- package: string,
307
+ package: string
308
308
  /**
309
309
  * 应用名称,6 个汉字以内,与应用商店保存的名称一致,用于在桌面图标、弹窗等处显示应用名称
310
310
  */
311
- name: string,
311
+ name: string
312
312
  /**
313
313
  * 应用图标,提供 192x192 大小的即可
314
314
  */
315
- icon: string,
315
+ icon: string
316
316
  /**
317
317
  * 应用版本名称,如:"1.0"
318
318
  */
319
- versionName?: string,
319
+ versionName?: string
320
320
  /**
321
321
  * 应用版本号,从1自增,推荐每次重新上传包时versionCode+1
322
322
  */
323
- versionCode: number,
323
+ versionCode: number
324
324
  /**
325
325
  * 支持的最小平台版本号,兼容性检查,避免上线后在低版本平台运行并导致不兼容;如果不填按照内测版本处理
326
326
  */
327
- minPlatformVersion?: string,
327
+ minPlatformVersion?: string
328
328
  /**
329
329
  * 接口列表,绝大部分接口都需要在这里声明,否则不能调用,详见每个接口的文档说明
330
330
  */
331
- features?: FeatureItem[],
331
+ features?: FeatureItem[]
332
332
  /**
333
333
  *
334
334
  */
@@ -339,11 +339,11 @@ export interface IManifestConfig extends ITaroManifestConfig {
339
339
  /**
340
340
  * 系统配置信息
341
341
  */
342
- config: SystemConfig,
342
+ config: SystemConfig
343
343
  /**
344
344
  * 路由信息
345
345
  */
346
- router: RouterConfig,
346
+ router: RouterConfig
347
347
  /**
348
348
  * UI 显示相关配置
349
349
  */
@@ -353,24 +353,24 @@ export interface IManifestConfig extends ITaroManifestConfig {
353
353
  export type PluginItem = string | [string, object]
354
354
 
355
355
  export interface IProjectBaseConfig {
356
- projectName?: string,
357
- date?: string,
358
- designWidth?: number,
359
- watcher?: any[],
360
- deviceRatio?: TaroGeneral.TDeviceRatio,
361
- sourceRoot?: string,
362
- outputRoot?: string,
363
- env?: IOption,
364
- alias?: IOption,
365
- defineConstants?: IOption,
366
- copy?: ICopyOptions,
367
- csso?: TogglableOptions,
368
- terser?: TogglableOptions,
369
- uglify?: TogglableOptions,
370
- sass?: ISassOptions,
371
- plugins?: PluginItem[],
356
+ projectName?: string
357
+ date?: string
358
+ designWidth?: number
359
+ watcher?: any[]
360
+ deviceRatio?: TaroGeneral.TDeviceRatio
361
+ sourceRoot?: string
362
+ outputRoot?: string
363
+ env?: IOption
364
+ alias?: IOption
365
+ defineConstants?: IOption
366
+ copy?: ICopyOptions
367
+ csso?: TogglableOptions
368
+ terser?: TogglableOptions
369
+ uglify?: TogglableOptions
370
+ sass?: ISassOptions
371
+ plugins?: PluginItem[]
372
372
  presets?: PluginItem[]
373
- baseLevel?: number,
373
+ baseLevel?: number
374
374
  framework?: string
375
375
  }
376
376
 
package/types/index.d.ts CHANGED
@@ -136,3 +136,7 @@ declare namespace Taro {
136
136
  // eslint-disable-next-line @typescript-eslint/no-empty-interface
137
137
  interface TaroStatic {}
138
138
  }
139
+ declare global {
140
+ const defineAppConfig: (config: Taro.Config) => Taro.Config
141
+ const definePageConfig: (config: Taro.Config) => Taro.Config
142
+ }
@@ -21,7 +21,7 @@ declare module './index' {
21
21
  onPageScroll?(obj: PageScrollObject): void
22
22
  onShareAppMessage?(obj: ShareAppMessageObject): ShareAppMessageReturn
23
23
  onTabItemTap?(obj: TabItemTapObject): void
24
- onResize?(obj: any): void
24
+ onResize?(obj: PageResizeObject): void
25
25
  }
26
26
 
27
27
  interface ComponentOptions {
@@ -309,7 +309,7 @@ declare module './index' {
309
309
  * 声明分包预下载的规则。
310
310
  * preloadRule 中,key 是页面路径,value 是进入此页面的预下载配置
311
311
  * 注意: 分包预下载目前只支持通过配置方式使用,暂不支持通过调用API完成。
312
- * vConsole 里有preloadSubpackages开头的日志信息,可以用来验证预下载的情况。
312
+ * vConsole 里有 preloadSubpackages 开头的日志信息,可以用来验证预下载的情况。
313
313
  * @since 2.3.0
314
314
  */
315
315
  preloadRule?: PreloadRule
@@ -335,12 +335,12 @@ declare module './index' {
335
335
  */
336
336
  style?: 'v2'
337
337
  /**
338
- * 配置 darkmode 为 true,即表示当前小程序已适配 DarkMode
338
+ * 配置 darkMode 为 true,即表示当前小程序已适配 DarkMode
339
339
  * @since 2.11.0
340
340
  */
341
341
  darkmode?: boolean
342
342
  /**
343
- * 指定 darkmode 变量配置文件 theme.json 路径
343
+ * 指定 darkMode 变量配置文件 theme.json 路径
344
344
  * @since 2.11.0
345
345
  */
346
346
  themeLocation?: string
@@ -42,6 +42,10 @@ declare module './index' {
42
42
  rnNavigationRef?: React.RefObject<any>
43
43
  }
44
44
 
45
+ interface SetGlobalDataPlugin {
46
+ install (app: any, data: any): void
47
+ }
48
+
45
49
  interface TARO_ENV_TYPE {
46
50
  [TaroGeneral.ENV_TYPE.WEAPP]: TaroGeneral.ENV_TYPE.WEAPP
47
51
  [TaroGeneral.ENV_TYPE.WEB]: TaroGeneral.ENV_TYPE.WEB
@@ -87,5 +91,20 @@ declare module './index' {
87
91
  Current: Current
88
92
 
89
93
  getCurrentInstance(): Current
94
+
95
+ /**
96
+ * @desc Vue3 插件,用于设置 `getApp()` 中的全局变量
97
+ * @example
98
+ * ```js
99
+ * // 使用插件
100
+ * const App = createApp(...)
101
+ * App.use(setGlobalDataPlugin, {
102
+ * xxx: 999
103
+ * })
104
+ * // 获取全局变量
105
+ * Taro.getApp().xxx
106
+ * ```
107
+ */
108
+ setGlobalDataPlugin: SetGlobalDataPlugin
90
109
  }
91
110
  }
@@ -5,32 +5,32 @@ declare module './index' {
5
5
  /**
6
6
  * 页面展示时的回调。
7
7
  */
8
- useDidShow(callback: () => any): void
8
+ useDidShow(callback: () => void): void
9
9
 
10
10
  /**
11
11
  * 页面隐藏时的回调。
12
12
  */
13
- useDidHide(callback: () => any): void
13
+ useDidHide(callback: () => void): void
14
14
 
15
15
  /**
16
16
  * 下拉刷新时的回调。
17
17
  */
18
- usePullDownRefresh(callback: () => any): void
18
+ usePullDownRefresh(callback: () => void): void
19
19
 
20
20
  /**
21
21
  * 上拉触底时的回调。
22
22
  */
23
- useReachBottom(callback: () => any): void
23
+ useReachBottom(callback: () => void): void
24
24
 
25
25
  /**
26
26
  * 页面滚动时的回调。
27
27
  */
28
- usePageScroll(callback: (payload: PageScrollObject) => any): void
28
+ usePageScroll(callback: (payload: PageScrollObject) => void): void
29
29
 
30
30
  /**
31
31
  * 页面尺寸改变时的回调。
32
32
  */
33
- useResize(callback: () => any): void
33
+ useResize(callback: (payload: PageResizeObject) => void): void
34
34
 
35
35
  /**
36
36
  * 页面转发时的回调。
@@ -40,12 +40,12 @@ declare module './index' {
40
40
  /**
41
41
  * 当前是 tab 页时,tab 被点击时的回调。
42
42
  */
43
- useTabItemTap(callback: (payload: TabItemTapObject) => any): void
43
+ useTabItemTap(callback: (payload: TabItemTapObject) => void): void
44
44
 
45
45
  /**
46
46
  * 用户点击右上角菜单“收藏”按钮时的回调。
47
47
  */
48
- useAddToFavorites(callback: (paload: AddToFavoritesObject) => AddToFavoritesReturnObject): void
48
+ useAddToFavorites(callback: (payload: AddToFavoritesObject) => AddToFavoritesReturnObject): void
49
49
 
50
50
  /**
51
51
  * 用户点击右上角菜单“分享到朋友圈”按钮时的回调。
@@ -56,7 +56,7 @@ declare module './index' {
56
56
  * 页面初次渲染完成的回调。
57
57
  * 此时页面已经准备妥当,可以和视图层进行交互。
58
58
  */
59
- useReady(callback: () => any): void
59
+ useReady(callback: () => void): void
60
60
 
61
61
  /**
62
62
  * 获取当前路由参数。
@@ -67,18 +67,18 @@ declare module './index' {
67
67
  * 导航栏的标题被点击时的回调。
68
68
  * **仅支付宝小程序支持。**
69
69
  */
70
- useTitleClick(callback: () => any): void
70
+ useTitleClick(callback: () => void): void
71
71
 
72
72
  /**
73
73
  * 导航栏的额外图标被点击时的回调。
74
74
  * **仅支付宝小程序支持。**
75
75
  */
76
- useOptionMenuClick(callback: () => any): void
76
+ useOptionMenuClick(callback: () => void): void
77
77
 
78
78
  /**
79
79
  * 下拉中断时的回调。
80
80
  * **仅支付宝小程序支持。**
81
81
  */
82
- usePullIntercept(callback: () => any): void
82
+ usePullIntercept(callback: () => void): void
83
83
  }
84
84
  }
@@ -55,6 +55,13 @@ declare module './index' {
55
55
  scrollTop: number
56
56
  }
57
57
 
58
+ interface PageResizeObject {
59
+ size: {
60
+ windowWidth: number
61
+ windowHeight: number
62
+ }
63
+ }
64
+
58
65
  interface ShareAppMessageObject {
59
66
  /**
60
67
  * 转发事件来源