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 分钟瘦身

相关推荐
u***u68512 小时前
React环境
前端·react.js·前端框架
X***E46312 小时前
前端数据分析应用
前端·数据挖掘·数据分析
4***149012 小时前
React社区
前端·react.js·前端框架
LFly_ice12 小时前
学习React-24-路由传参
前端·学习·react.js
Lhuu(重开版13 小时前
CSS:动效布局动画
前端·css
Q***K5513 小时前
前端构建工具
前端
laocooon52385788613 小时前
创建了一个带悬停效果的“我的个人主页“按钮
前端
2013编程爱好者14 小时前
Vue工程结构分析
前端·javascript·vue.js·typescript·前端框架
小满zs15 小时前
Next.js第十一章(渲染基础概念)
前端
不羁的fang少年16 小时前
前端常见问题(vue,css,html,js等)
前端·javascript·css