Skip to content

解决uniapp开发微信小程序时分包资源被打进主包的问题

2025-05-27

关于微信小程序的资源分包问题,不注意的话,真的容易被坑。

公司买了个第三方商城源码来二次开发,其中就包含微信小程序,使用的 uniapp 开发。在开发一阵子后,上传包时一直提示主包文件超出,铁头同事的做法是一次次的去压缩图片等静态资源的体积,这样不是长久之计,随后我去研究了下分包策略。

在uniapp文档中发现了这两句:

  • 静态文件:分包下支持 static 等静态资源拷贝,即分包目录内放置的静态资源不会被打包到主包中,也不可在主包中使用
  • 放在每个分包root对应目录下的静态文件会被打包到此分包内

这也解决了我的困扰,原来即使页面分包了,各分包引用的资源也不会自动分包,即使这个资源是分包独享的。而这个小程序里面所有的静态资源都放在了 src/static 这个全局目录中,并没有根据分包引用来拆分。

知道原因就好办了,我把本次新开发的分包所引用的资源,全部迁移到分包目录中就行了。但是事情也没有这么简单,经过多次尝试,才发现资源目录名称必须是 static,也就是说你要在分包根目录中再建立一个 static 目录,然后把所有的静态资源放进去就行了,哦对了,还需要用相对路径引用,不要用绝对路径。

最后吐槽下,虽然 uniapp 文档写得不够清晰,但是企鹅家的文档写得更是啥也不是!