接口写好了吗 2023-03-09 13:53 采纳率: 73%
浏览 53
已结题

uniapp小程序分包后主包没有变小

我这个项目是这样的。
主包pages内有四个tabBar页面和一个登录页。还没写啥呢。
然后我在里面加了一个页面,开始写,发现插件市场我下载了一个echarts插件和一个uview组件库加上一些自己写的组件和公共方法的。这就主包过大了,变成了4MB附近了。
我就准备分包一下,因为听说分包后,主包只留tabBar几个页面,因为我tabBar几个页面根本没有引入过uview和echarts组件,所以按道理应该不会过大的。但是我分包后,一点作用没有啊。分包是有了,但是只是把我写的页面分过去了,分包大小也只有80kb。我发现uni_modoules内的插件都还是算在主包大小内的。这是为什么呢。明明我主包都没有用过这些插件,不是打包的时候应该不会算在主包里吗。等我打开分包的时候引入才会下载分包的资源吗。
请问这种情况要如何处理呢。还是说我需要把uni_modoules内的插件也是一起移到分包里找个文件夹放着才行?

  • 写回答

3条回答 默认 最新

  • Pray for God's kindness 2023-03-09 14:18
    关注

    你主包页面引用分包页面没?还有,可以放弃使用echarts转用ucharts,虽然样式少一点

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 崽崽的谷雨 2023-03-09 14:17
    关注

    引用自chatGPT希望对你有帮助:
    在uni-app中,插件市场中下载的插件会默认被打包到主包中。如果插件文件过大,会导致主包过大,影响应用启动速度。为了解决这个问题,你可以考虑将插件放到分包中,让应用启动时不需要加载这些插件,只有在需要使用插件时才会下载对应的分包。
    你可以按照以下步骤将插件放到分包中:

    1.在manifest.json文件中,将插件所在的模块(如uni_modules/echarts)添加到subPackages数组中,指定分包的路径和文件名,例如:

    "subPackages": [
      {
        "root": "pages/subPackage",
        "name": "subPackage",
        "pages": [
          "subPageA",
          "subPageB"
        ]
      },
      {
        "root": "uni_modules/echarts",
        "name": "echarts"
      }
    ]
    
    

    2.在需要使用插件的页面中,使用require方法引入插件模块,例如:

    const echarts = require('@/uni_modules/echarts/js/echarts.js');
    
    

    这样做可以让应用在启动时不会加载插件模块,只有在需要使用时才会下载对应的分包,从而减小主包的体积,提高应用启动速度。
    需要注意的是,分包的大小也会对应用启动速度产生影响,因此要根据实际情况合理划分分包。另外,如果插件模块被多个页面使用,可以将其放到独立的分包中,以提高代码复用性和减小分包数量。

    评论
  • CSDN-Ada助手 CSDN-AI 官方账号 2023-03-09 17:18
    关注
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月18日
  • 已采纳回答 3月10日
  • 创建了问题 3月9日

悬赏问题

  • ¥15 stata合并季度数据和日度数据
  • ¥15 c语言练习:统计词频
  • ¥15 谁能提供rabbitmq,erlang,socat压缩包,记住版本要对应,发到邮箱2644980770@qq.com
  • ¥15 谁能提供rabbitmq,erlang,socat压缩包,记住版本要对应
  • ¥15 Vue3 中使用 `vue-router` 只能跳转到主页面?
  • ¥15 用QT,进行QGIS二次开发,如何在添加栅格图层时,将黑白的矢量图渲染成彩色
  • ¥50 监控摄像头 乐橙和家亲版 保存sd卡的文件怎么打开?视频怎么播放?
  • ¥15 Python的Py-QT扩展库开发GUI
  • ¥60 提问一下周期性信信号的问题
  • ¥15 jtag连接不上fpga怎么办