Vue3 uni-app 主包 2 MB 危机?1 个插件 10 分钟瘦身

作者:佚名 时间:2025-11-10 13:59

字号

近日,前端开发社区里,一则关于Vue3在分包优化方面的策略调整,引发了广泛讨论,众多开发者称,这一变化带来了实质性的上线障碍,致使有严格体积限制的平台,比如小程序等。

内置 SplitChunks 的变迁

在Vue2那个时期,当与webpack进行构建操作的时候,SplitChunks功能作为一种被内置的特性存在着,它能够依照模块之间的引用关系,自动地去拆分代码包。这样的一种机制,保证了主包的体积一直都被控制在一个合理的范围之内,大多数的项目可以十分轻松地就将主包压缩到2MB以下。到了2023年,当Vue3全面地转向Vite构建体系之后,这一项持续了许多年的优化方案就被完全地移除掉了。

官方策略重大转变

Vue核心团队于2023年底正式予以确认,Vite构建工具会不再集成代码拆分逻辑,这般决策表明开发者需自行去处理第三方依赖的分配事宜,虽说官方作出解释称其目的是为维系构建工具的轻量化,然客观上致使大量依赖库被默认打包到单一common文件里 。

pnpm add -D @uni-ku/bundle-optimizer

分包缺失的直接影响

// vite.config.ts
import { defineConfig } from 'vite'
import uni from '@dcloudio/vite-plugin-uni'
import optimizer from '@uni-ku/bundle-optimizer'
export default defineConfig({
  plugins: [
    uni(),
    optimizer({ logger: true }) // 日志开,一目了然
  ]
})

经检测发现,微信小程序平台有着要严格执行主包不可以超过2MB的审核标准。实际测试所展示出来的情况是,采用Vue3加上Vite构建而成的项目,其主包体积通常的状况一般呈现出突破限制阈值的态势。在2024年3月所取得的数据能够明确说明的是,那些没有进行手动优化的项目,其主包大小平均达到了3.5MB,这直接造成了使得审核失败的结果。

第三方解决方案兴起

// manifest.json
{
  "mp-weixin": {
    "optimization": { "subPackages": true }
  }
}

当下社区已然出现了诸如@uni-ku/bundle-optimizer等专项的优化工具 ,此方案借助四步配置才能恢复分包能力 ,分别是安装依赖 ,配置vite ,开启小程序分包功能 ,进行类型声明配置 ,实际应用表明 ,接入之后主包的体积能够缩减40%-60% 。

// tsconfig.json
{
  "include": ["async-import.d.ts", "async-component.d.ts"]
}

具体实施指南

开发者要在vite.config.js里头配置optimizeDeps参数,与此同时于小程序manifest当中启动subPackages选项。要是针对TypeScript项目,还得在tsconfig.json里添加async-*.dts类型声明文件。整件配置过程大概需要10分钟,立即能够在微信开发者工具的构建分析面板去验证效果。

const mod = await AsyncImport('@/sub-pkg/utils/encrypt.ts')
mod?.aesEncrypt('hello')

常见问题与应对

有部分开发者反馈,在进行配置之后,主包体积并未发生变化,这种情况通常是由于manifest配置存在遗漏所导致的。对于编辑器类型报错的情况,可通过完善tsconfig配置来加以解决,而HBuilderX出现白屏问题,大多是因为缺少vite.config.ts文件所造成的。需要留意的是,当前的方案暂时不支持App端,移动端开发者需要等待后续的更新 。



于技术进展的路途之中,怎样于追寻开发感受与确保项目效能之间寻觅到平衡之处,着实是值得每一个技术团队深入思考的。各位从事开发工作的人员在运用Vue3开展小程序开发之际,均采用了哪些别具一格的优化举措来应对分包方面的难题呢?欢迎在评论区域分享您的实践经历,要是觉得本文对您有所助益,请点赞予以支持并分享给更多的同行 。

pnpm build:mp-weixin

责任编辑:CQITer新闻报料:400-888-8888   本站原创,未经授权不得转载
关键词 >> Vue3 uni-app 主包 2 MB 危机?1 个插件
继续阅读
热新闻
推荐
关于我们联系我们免责声明隐私政策 友情链接