uni-app使用easycom引入node_modules中的组件库仅在一个分包中使用了组件A打包后组件算在主包
uni-app使用easycom引入node_modules中的组件库仅在一个分包中使用了组件A打包后组件算在主包
示例代码:
easycom: { autoscan: false, custom: { “^uni-(.*)”: “gd-uni-ui/lib/…” } }
## 操作步骤:
- 仅在一个分包中使用了组件A;打包后组件算在主包
## 预期结果:
- A组件打包在分包
## 实际结果:
- A组件打包在主包
## bug描述:
- 已实现node_moules中的第三方包,如果仅在某一个分包中使用,将其打包到对应分包
| 信息类型 | 信息内容 |
|---|---|
| 产品分类 | uniapp/小程序/微信 |
| PC开发环境操作系统 | Windows |
| PC开发环境操作系统版本号 | win10 |
| 基础库版本号 | 3.0.0-3070320230222002 |
| 项目创建方式 | CLI |
| CLI版本号 | 3.0.0-3070320230222002 |
更多关于uni-app使用easycom引入node_modules中的组件库仅在一个分包中使用了组件A打包后组件算在主包的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
这是一个典型的easycom组件打包优化问题。根据uni-app的打包机制,当使用easycom自动引入组件时,即使组件只在分包中使用,也可能被打包到主包中。
问题原因:
- easycom的全局扫描机制可能导致组件被识别为全局依赖
- 自定义easycom规则可能影响了组件的分包判断
解决方案:
-
检查组件使用方式 确保组件确实只在分包页面中引入,主包页面没有间接引用
-
调整easycom配置
easycom: {
autoscan: true, // 建议开启自动扫描
custom: {
"^uni-(.*)": "@/components/uni-$1/uni-$1.vue" // 调整路径格式
}
}
- 使用分包配置
在分包目录下创建
components目录,将分包专用组件放在对应位置:
subpackage/
└── components/
└── componentA.vue
- 检查组件导入语句 确保在分包页面中使用相对路径导入:
<template>
<componentA />
</template>
<script>
import componentA from './components/componentA.vue'
</script>


