UniApp+Vue3多分包引入同一 npm 库被重复打包至 vendor 的问题分析与解决

1. 背景

在UniApp项目中,为了提升应用性能、优化加载速度、降低首屏资源占用,我们通常会采用 ​​分包(subPackages)​​ 的模式。

  • ​主包(main package)​:包含应用入口、公共页面、全局组件和逻辑,是用户打开小程序 / App 时首先加载的部分;
  • ​分包(subPackage)​ :将一些非首屏、独立功能模块的页面拆分成单独的包,​按需加载​,从而减少主包体积,提升启动速度。

但是在使用过程中出现,不同分包引入同一个npm库,会被重复打入主包中。

官方社区:如何合理的将npm包在多个分包下运行而不会打包进主包?

2. 问题现象

例如,我在pagesLpagesN中均引入了crypto-js

通过微信小程序代码依赖分析:

pagesN引入crypto-js

pagesN去除crypto-js

通过分析可得出,如果分包不引入crypto-js,主包的体积没有变大,如果引入了,会导致体积变大。

3. 如何解决

如何简单快速的解决,就是将pagesN页面直接引入pagesL分包中,去除重复引入。

直接移入分包L

移入到pagesL可以看到主包的体积并没有变大,这算是一个简单的解决方式。

具体解决方式可以参考这篇文章: vue3 uni-app 主包 2 MB 危机?1 个插件 10 分钟瘦身

相关推荐
码界奇点3 小时前
Spring Web MVC构建现代Java Web应用的基石
java·前端·spring·设计规范
yinuo3 小时前
UniApp + Vue3 使用 marked 报错:SyntaxError /[\p{L}\p{N}]/u 问题分析与解决
前端
大前端helloworld3 小时前
前端梳理体系从常问问题去完善-框架篇(Vue2&Vue3)
前端·javascript·面试
小墨宝4 小时前
web前端学习LangGraph
前端·学习
南囝coding4 小时前
React 19.2 重磅更新!这几个新特性终于来了
前端·react.js·preact
Dajiaonew4 小时前
Vue3 + TypeScript 一篇文章 后端变全栈
前端·javascript·typescript
广州华水科技4 小时前
GNSS与单北斗变形监测一体机在基础设施安全中的应用分析
前端
勤劳打代码5 小时前
妙笔生花 —— Flutter 实现飞入动画
前端·flutter·设计模式
银安5 小时前
CSS排版布局篇(4):浮动(float)、定位(position) 、层叠(Stacking)
前端·css