这是一个创建于 43 天前的主题,其中的信息可能已经有所发展或是发生改变。
原来的小程序中,由于代码比较多,之前做了分包,并且很多地方用了分包异步化来处理。比如富文本渲染用到 wxParse ,写成了一个组件,专门放到了一个分包中,然后通过分包异步化引入其他页面使用。除此之外还有些其他的,比如公用的 iconfont 图标,表单组件,重写的带搜索的 Picker 等,都是通过异步化加载的。
最近需要用 uniapp 来重构,但是使用分包异步化有些问题。
在 uniapp 中的 page.json 中,定义了 usingComponents 和 componentPlaceholder 。编译后,发现无法生成对应分包信息,后面发现需要在对应的分包 pages 中也添加组件的 xxx.vue 的地址,也就是需要当作页面定义好才能正确生成分包并引入。但是此种方法引入的组件,无法在 H5 网页中正确的显示和使用。
有没有什么方法可以直接引入后使用,而无需编写其他的兼容代码?
ps:前段时间还看了下 taro ,taro 的分包异步化只能通过 webpack 打包时处理,自定义组件还需要写成原本的 wxml 这些,然后用 copy 复制。也就是说必须要写兼容代码才行
1 条回复 • 2024-07-27 14:27:20 +08:00
![tomjack](https://cdn.v2ex.com/avatar/a752/9d5b/222979_normal.png?m=1711524618) |
|
1
tomjack 42 天前
之前也遇到过这种问题,所以后来我在新开小程序项目的时候,首次进入的底部 TAB 页面,可能只有 4 ,5 个页面左右,只把这个放到 pages 也就是主包里面,其余所有的全部放到分包里。 至于涉及到插件的,之前项目里使用到了 ucharts. 这个单独开个分包,因为它本身就比较大。 所有涉及到引用 ucharts 的,全部放到这个分包里。
我宁愿多分点包也不愿意将来单独去处理这个分包的问题
也尝试过分包 异步加载的,预加载的。但是不确定将来的需求能否满足,可能将来要打包成 h5, App 的。所以我的选择还是尽量手动处理好。
|