如何优雅忽略 components.d.ts的更新

大家好,我是奈德丽

在使用 Vue3 + Vite 的项目中,unplugin-vue-components是一个非常实用的插件,它可以 自动按需导入组件 ,免去手动 import 的麻烦。同时,它会生成一个 components.d.ts 文件,为 TypeScript 提供全局组件类型提示。

不过,很多团队会遇到一个问题:

每次新增组件,components.d.ts 都会变动,需要提交到 Git,非常烦人。有没有办法不提交,又不影响功能?

本文就来分享一个 完整、优雅的解决方案


1️⃣ 背景与问题

为什么我会这么反感?

每次用到新组件,它都会自动更新一次,奈何我这项目就是一个javascript项目,typescript都没用到,我不喜欢在js项目里看到ts文件,你给我生成一个components.d.ts,而且我压根就不想去提交这个文件的更新

  1. 文件每次更新组件都会变化
  2. Git 会跟踪,导致每次都要提交
  3. 对于 CI/CD 或团队协作,非常麻烦

2️⃣ 解决方案

奈德丽语录:看到什么不爽,那就干掉他

步骤 1:忽略文件

.gitignore 中添加:

bash 复制代码
# 忽略自动生成的组件类型声明
src/components.d.ts

注意:如果文件之前已经提交到 Git,仅仅添加 .gitignore 不会生效,需要先从 Git 索引中移除。


步骤 2:从 Git 中移除(保留本地)

执行:

bash 复制代码
git rm --cached src/components.d.ts

解释:

  • --cached 表示 只从 Git 索引中删除
  • 本地文件仍然保留
  • 确保路径和实际文件一致

步骤 3:提交更改

cmd 复制代码
git add .gitignore
git commit -m "chore: 忽略自动生成的 components.d.ts"
git push

✅ 完成后:

  • 本地 IDE 仍然可以补全组件类型
  • Git 不再跟踪 components.d.ts
  • 新增组件不会再频繁修改提交

步骤 4:可选优化

在vite.config.js中可以增加对Components的配置,有一个dts属性,可以指定components.d.ts的生成目录,如果不设置的化,默认会自动生成到根目录下

方案 A:生成到临时目录

可以把类型文件生成到 node_modules/.types,彻底不提交:

vite.config. 复制代码
Components({
  dts: 'node_modules/.types/components.d.ts',
})
  • IDE 仍然识别
  • Git 自动忽略 node_modules

项目配置图及效果如图

方案 B:关闭文件生成

像我们项目没有用到typescript,所以可以直接选择关闭类型生成

js 复制代码
Components({
  dts: false, // 不生成 d.ts 文件
})

3️⃣ 小结

  • components.d.ts类型声明文件,不影响运行时
  • 可以安全地 从 Git 中移除并忽略
  • 本地 IDE 的类型提示依然有效
  • 可根据团队喜好选择生成路径或关闭生成
相关推荐
未来之窗软件服务17 小时前
自己写算法(九)网页数字动画函数——东方仙盟化神期
前端·javascript·算法·仙盟创梦ide·东方仙盟·东方仙盟算法
你的人类朋友18 小时前
什么是断言?
前端·后端·安全
FIN666819 小时前
昂瑞微:实现精准突破,攻坚射频“卡脖子”难题
前端·人工智能·安全·前端框架·信息与通信
椎49519 小时前
苍穹外卖前端nginx错误之一解决
运维·前端·nginx
@。12419 小时前
对于灰度发布(金丝雀发布)的了解
开发语言·前端
我有一棵树19 小时前
前端图片加载失败、 img 出现裂图的原因全解析
前端
FIN666819 小时前
昂瑞微冲刺科创板:硬科技与资本市场的双向奔赴
前端·人工智能·科技·前端框架·智能
im_AMBER19 小时前
杂记 14
前端·笔记·学习·web
牧杉-惊蛰19 小时前
disable-devtool 网络安全 禁止打开控制台
前端·css·vue.js
C+ 安口木19 小时前
vue中监听window某个属性被添加或值的变化
前端·javascript·vue.js