unplugin-vue-components 在 vite 中的使用和配置
unplugin-vue-components 是由 Vue官方人员开发的一款自动引入插件,可以省去比如 UI 库的大量 import 语句。
安装
npm i unplugin-vue-components -D
配置
import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers'
import Components from 'unplugin-vue-components/vite'
import { defineConfig } from 'vite'
export default defineConfig({
plugins: [
Components({
dirs: ['src/components'], // 配置需要默认导入的自定义组件文件夹,该文件夹下的所有组件都会自动 import
resolvers: [AntDesignVueResolver({ importStyle: false, resolveIcons: true })]
})
]
}
-
这里以 ant-design-vue 为例,引入包里自带的 AntDesignVueResolver 函数(主流的 UI 都有内置,如果没有的话可以自己实现一个 resolver)。importStyle 指是否需要自动随引入加载对应的组件样式,我这里设置为 false,因为某些二级组件(比如 DateRangePicker)没办法准确地识别正确路径,他的搜寻路径都是按一级组件来写的,所以我改成了全量导入 css。resolveIcons 配置是否对 antd 的图标起作用。
-
配置完 js 引入,如果使用 ts 写项目的话,当然就要考虑类型的问题了,自动引入确实可以省略引入,但是这样也失去了类型提示。antv 提供了一个 global.d.ts 类型声明文件(实测 element-plus 也提供了这一类型文件),只需要在 tsconfig 的 types 项下添加 ant-design-vue/typings/global 即可提供组件的类型声明。没有引入也有组件类型提示:
-
想必你已经看到了 dirs 这个配置项了,他不仅可以实现 UI 框架自动引入,还支持你自己项目中开发的公共组件自动引入。dirs 这个配置的默认值就是
src/components
,如果你想取其他的文件夹名也是可以的,在检测到你在使用 ts 之后,他会自动在项目根目录生成一个 compnents.d.ts 里面即是根据组件内容生成的类型声明,为 volar 提供类型提示,他会自动根据文件变动进行更新。(注意:compnents.d.ts 文件会在 vue-tsc 运行的时候进行更新,建议把他加入 gitignore 中,以免出现频繁更改导致 git 监测到项目内容一直变动的问题)注意事项
这个包大大地简洁了业务代码,以后再也不用写一大堆的 import 了,但是所有的这一切都基于你写的是 Vue 单文件组件,如果是喜欢用 jsx 编写 Vue 代码的童鞋,那他就帮不了你了。还有就是因为他是编译时动态加入 import 语句,所以在单元测试的时候,测试框架可能会提示缺少引入,这个就要等 Vite 官方对它针对适配了,如果现阶段需要用到测试代码的童鞋则不太适合。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)