1616
1717### 🎏 功能与支持
1818
19- > !<b style =" color : red ;" >暂时没有对App平台做兼容性实现</b >
20- >
2119> 适用于 Uniapp - CLI 或 HBuilderX 创建的 Vue3 项目
2220
2321- 分包优化
2422- 模块异步跨包调用
2523 > 允许使用 ` import() ` 语法,异步引用模块。
2624 >
2725 > 注意,这不是指静态导入,详见[ 此处] ( https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/import ) 。
26+ >
27+ > ` v2.0.4 ` 版本开始,插件实现了 ** 无感屏蔽** 非法的 ` import() ` 行为,同时会有 log 提示开发者迁移写法:
28+ > - 小程序端对 vue 组件文件的 ` import() ` 是非法的
29+ > - app端的编译格式是iife,无法使用` import() ` 语法,故均视为非法,将全量屏蔽
30+ >
2831- 组件异步跨包引用
2932 > 在vue 组件的 ` defineOptions ` 宏指令或者默认导出下配置 ` componentPlaceholder ` ,eg:
3033 > ``` vue
@@ -208,14 +211,17 @@ export default defineConfig({
208211- ` 模块异步跨包调用 ` 是指在一个分包中引用另一个分包中的模块(不限主包与分包),这里的模块可以是 js/ts 模块(插件)。
209212- ` TODO: ` 是否支持 json 文件?
210213- ` TODO: ` 是否支持 vue 文件?当然,小程序环境引入 vue 文件一般是没有什么意义的。
211- > 目前实测,小程序环境下,千万不要对一个 vue 组件进行 ` import() `
214+ > ~~ 目前实测,小程序环境下,千万不要对一个 vue 组件进行 ` import() ` ~~
215+ > ~~ 这会导致这个 vue 组件对应的页面或者文件空白,和 ** “分包优化”** 功能有些许冲突”,后续会尽可能填补这个缺陷~~
216+ >
217+ > 随着新版本的到来 ` v2.0.4 ` ,对非法的 ` import() ` 行为,实现了无感的屏蔽操作,同时会有 log 提示开发者迁移写法
212218 >
213- > 这会导致这个 vue 组件对应的页面或者文件空白,和 ** “分包优化” ** 功能有些许冲突”,后续会尽可能填补这个缺陷
219+ > 可以不用在意可能会因为这个问题导致的页面空白问题了,如果还存在问题,欢迎反馈🙏, [ 详见此处 ] ( ./MIGRATION.md#4-对非法的-import-行为实现了无感的屏蔽操作 )
214220
215221可以直接使用 esm 的原生异步导入语法 ` import() ` 来实现模块的异步引入。
216222- h5:原生支持
217223- mp:转译成 ` require.async() `
218- - app:TODO: 待兼容
224+ - app:app端的编译格式是 ` iife ` ,无法使用 ` import() ` 语法,本插件将全量屏蔽 ` import() ` 行为
219225- 其他 mp:TODO: 未做兼容测试,欢迎反馈
220226
221227``` js
@@ -224,12 +230,12 @@ await import('@/pages-sub-async/async-plugin/index').then((res) => {
224230 console .log (res? .AsyncPlugin ()) // 该插件导出了一个具名函数
225231})
226232
227- // vue 文件 异步引入(页面文件)❌ 暂时不要这样使用 ,不要这样引用组件文件
233+ // vue 文件 异步引入(页面文件)❌ 不要这样使用 ,不要这样引用组件文件
228234import (' @/pages-sub-async/index.vue' ).then ((res ) => {
229235 console .log (res .default || res)
230236})
231237
232- // vue 文件 异步引入(组件文件)❌ 暂时不要这样使用 ,不要这样引用组件文件
238+ // vue 文件 异步引入(组件文件)❌ 不要这样使用 ,不要这样引用组件文件
233239import (' @/pages-sub-async/async-component/index.vue' ).then ((res ) => {
234240 console .log (res .default || res)
235241})
0 commit comments