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 回复

分包根目录新建一个 uni-modules,把分包用到的组件放在这里面,修改下easycom规则

更多关于uni-app使用easycom引入node_modules中的组件库仅在一个分包中使用了组件A打包后组件算在主包的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个典型的easycom组件打包优化问题。根据uni-app的打包机制,当使用easycom自动引入组件时,即使组件只在分包中使用,也可能被打包到主包中。

问题原因:

  1. easycom的全局扫描机制可能导致组件被识别为全局依赖
  2. 自定义easycom规则可能影响了组件的分包判断

解决方案:

  1. 检查组件使用方式 确保组件确实只在分包页面中引入,主包页面没有间接引用

  2. 调整easycom配置

easycom: {
  autoscan: true, // 建议开启自动扫描
  custom: {
    "^uni-(.*)": "@/components/uni-$1/uni-$1.vue" // 调整路径格式
  }
}
  1. 使用分包配置 在分包目录下创建components目录,将分包专用组件放在对应位置:
subpackage/
  └── components/
      └── componentA.vue
  1. 检查组件导入语句 确保在分包页面中使用相对路径导入:
<template>
  <componentA />
</template>

<script>
import componentA from './components/componentA.vue'
</script>
回到顶部