V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hereIsChen
V2EX  ›  问与答

使用 uni-app 开发小程序和 H5,分包异步化只能在小程序生效, H5 只能写兼容代码吗?

  •  
  •   hereIsChen · 123 天前 · 720 次点击
    这是一个创建于 123 天前的主题,其中的信息可能已经有所发展或是发生改变。
    原来的小程序中,由于代码比较多,之前做了分包,并且很多地方用了分包异步化来处理。比如富文本渲染用到 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
        1
    tomjack  
       122 天前
    之前也遇到过这种问题,所以后来我在新开小程序项目的时候,首次进入的底部 TAB 页面,可能只有 4 ,5 个页面左右,只把这个放到 pages 也就是主包里面,其余所有的全部放到分包里。 至于涉及到插件的,之前项目里使用到了 ucharts. 这个单独开个分包,因为它本身就比较大。 所有涉及到引用 ucharts 的,全部放到这个分包里。

    我宁愿多分点包也不愿意将来单独去处理这个分包的问题

    也尝试过分包 异步加载的,预加载的。但是不确定将来的需求能否满足,可能将来要打包成 h5, App 的。所以我的选择还是尽量手动处理好。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3582 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 04:58 · PVG 12:58 · LAX 20:58 · JFK 23:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.