From b1f85af2d66d9c68b61a77449e38773447ca3162 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=80=E4=B8=AA=E5=96=B7=E5=9A=8F=E6=98=AF=E6=80=9D?= =?UTF-8?q?=E5=BF=B5?= <1035936946@qq.com> Date: Thu, 18 Jun 2026 02:44:28 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=8E=92=E9=99=A4=20view/components=20?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=89=AB=E6=8F=8F=EF=BC=8C=E6=B6=88=E9=99=A4?= =?UTF-8?q?=20unplugin-vue-components=20=E7=BB=84=E4=BB=B6=E9=87=8D?= =?UTF-8?q?=E5=90=8D=E8=AD=A6=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 开发环境启动时,`unplugin-vue-components` 会输出大量 `naming conflicts` 警告(如 `Select`、`Upload`、`ApiSelect` 等),影响开发体验。 **根因:** 项目中存在两套同名组件,文件名相同但用途不同: - `src/components/form/components/` — 表单输入控件,依赖插件自动按需导入 - `src/components/view/components/` — 表格/详情页展示控件,通过 `component-map.ts` 的 `import.meta.glob` 手动注册 插件扫描 `src/components` 时,两套组件被解析为相同 PascalCase 名称,触发重名冲突警告。 **修复:** 在 `vite.config.ts` 的 `Components` 配置中增加 `globs`,用否定模式排除 `view/components` 目录,避免重复扫描。 > 注:`exclude` 选项仅过滤「自动插入 import 的目标文件」,不能阻止组件扫描;需使用 `globs` 的 `!` 否定语法。 ## 影响范围 - ✅ 无功能影响:`view/components` 本就通过 `component-map.ts` 注册,不依赖自动导入 - ✅ `form/components` 及 `src/components/core` 等组件仍正常自动导入 - ✅ 消除启动时的 15 条 naming conflicts 警告 Signed-off-by: 一个喷嚏是思念 <1035936946@qq.com> --- vite.config.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/vite.config.ts b/vite.config.ts index 5f35283b..529a5027 100755 --- a/vite.config.ts +++ b/vite.config.ts @@ -96,10 +96,11 @@ export default ({ mode }: { mode: string }) => { globalsPropValue: true } }), - // 自动按需导入组件 + // 自动按需导入组件(view/components 由 component-map.ts 手动注册,用 globs 排除以避免与 form 组件重名冲突) Components({ dts: 'src/types/import/components.d.ts', - resolvers: [ElementPlusResolver()] + resolvers: [ElementPlusResolver()], + globs: ['src/components/**/*.vue', '!src/components/view/components/**'] }), // 按需定制主题配置 ElementPlus({ -- Gitee