Skip to content

Unplugin ​

WARNING

教练,我不想import了

import vue ​

shell
npm i unplugin-vue-components -D

import js/ts ​

shell
npm i -D unplugin-auto-import

去掉 import 之后ts类型提示怎么办? ​

运行时会自动生成类型文件

plugind.ts
unplugin-vue-componentscomponents.d.ts
unplugin-auto-importauto-imports.d.ts

为什么可以自动import ​

unplugin-auto-import 会在构建工具处理源码时,通过 Unplugin 提供的 transform 等统一钩子扫描代码中的标识符;当发现 ref、computed、useRouter 等已配置但未显式导入的 API,就解析其来源,并在源码交给 Vite、Webpack、Rspack 等工具继续编译前,自动插入对应的 import 语句,同时可生成类型声明文件供 TypeScript 和 IDE 使用。

text
源代码
  ↓
扫描未导入的标识符
  ↓
与预设/API 配置匹配
  ↓
插入 import 语句
  ↓
交给构建工具继续编译

unplugin-vue-components 的原理与自动导入 API 类似,但扫描对象是 Vue 模板中的组件标签。它通过 Unplugin 的构建钩子解析 .vue 文件,发现 <MyButton> 等未手动注册的组件后,在指定目录或 UI 库 Resolver 中查找组件来源,再向编译结果注入 import 和组件注册代码,同时生成 components.d.ts 为 IDE 提供类型提示。

text
.vue 模板中的组件标签
        ↓
扫描并提取组件名
        ↓
本地组件目录 / UI 库 Resolver 中查找
        ↓
注入 import 和组件注册
        ↓
交给 Vue 编译器和构建工具处理

unplugin-vue 是干嘛的? ​

核心定位:跨构建工具通用的 Vue3 SFC 编译插件,作用和 Vite 官方 @vitejs/plugin-vue 完全一致 —— 把 .vue 单文件组件编译成浏览器可执行 JS,支持 <script setup>、Vue 宏语法、样式处理等。

依托 unplugin 通用插件体系,一份插件源码同时适配: Vite / Rollup /esbuild/ Webpack / Rspack / Farm / Rolldown 而官方 @vitejs/plugin-vue 只能在 Vite 里用

Powered by VitePress