w***@alibaba-inc.com
w***@alibaba-inc.com
  • 发布:2024-02-01 17:21
  • 更新:2024-02-03 15:56
  • 阅读:122

【微信小程序|优化】如何在打包时去掉uni-cloud/dist/uni-cloud.es.js

分类:uni-app

我的项目是一个使用uniapp开发的微信小程序。最近在优化包体积,使用vite-bundle-analyzer分析打包产物。发现在common/vendor.js里,uni-cloud占用了比较大的体积。如下图

项目本身没有使用云开发,查看node_modules的依赖关系,uni-app,uni-components对uni-cloud有依赖。请问社区/官方,是否有方法在微信小程序的打包中优化掉这部分代码?

2024-02-01 17:21 负责人:无 分享
已邀请:
踽踽独行

踽踽独行

这项目怎么创建的,怎么编译的?是hbx还是cli?uni的版本是啥?

我的有个cli 创建的vue3项目,小程序产物没看到有这个uni-cloud

  • w***@alibaba-inc.com (作者)

    不太清楚项目初始创建时使用的是hbuilder还是cli,目前开发中IDE没有使用hbuilder,通过命令行执行npm run build:mp-weixin,进行编译,uniapp版本号为3.0.0-3090920231225001。

    在编译后的小程序产物里是无法直接看到uni-cloud的,图中内容是对编译产物中common/vendor.js进行的依赖分析看到的结果。


    我自己的解决方案:

    首先,项目业务代码没有使用到uni-cloud进行开发,没有使用云函数,数据库,存储。

    对package-lock.json分析,项目中对uni-cloud有依赖的modules有@dcloudio/uniapp,@dcloudio/uni-components。查阅网上信息,github的一个issue里提到过在打包构建时去除uni-cloud,并成功(https://github.com/dcloudio/uni-app/issues/4150)。但是在我的项目里并没有babel相关的配置文件。

    issue中提到组件会引用uni-cloud,对使用到的uni-ui组件逐一进行检查,发现使用到的uni-data-picker 级联选择器组件支持uniCloud云端数据。替换此组件,进行编译。编译后小程序功能正常,vendor.js体积缩小100K。

    2024-02-04 14:26

要回复问题请先登录注册