chore: 🔨 配置自动导入自定义组件

This commit is contained in:
haoxr 2023-06-17 09:53:35 +08:00
parent 0675ba9b86
commit fc17f08312
5 changed files with 1624 additions and 36 deletions

1582
auto-imports.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -5,10 +5,8 @@
export {} export {}
declare global { declare global {
const EffectScope: typeof import("vue")["EffectScope"]; const EffectScope: typeof import("vue")["EffectScope"];
const ElForm: typeof import("element-plus/es")["ElForm"];
const ElMessage: typeof import("element-plus/es")["ElMessage"]; const ElMessage: typeof import("element-plus/es")["ElMessage"];
const ElMessageBox: typeof import("element-plus/es")["ElMessageBox"]; const ElMessageBox: typeof import("element-plus/es")["ElMessageBox"];
const ElTree: typeof import("element-plus/es")["ElTree"];
const asyncComputed: typeof import("@vueuse/core")["asyncComputed"]; const asyncComputed: typeof import("@vueuse/core")["asyncComputed"];
const autoResetRef: typeof import("@vueuse/core")["autoResetRef"]; const autoResetRef: typeof import("@vueuse/core")["autoResetRef"];
const computed: typeof import("vue")["computed"]; const computed: typeof import("vue")["computed"];
@ -297,14 +295,12 @@ import { UnwrapRef } from "vue";
declare module "vue" { declare module "vue" {
interface ComponentCustomProperties { interface ComponentCustomProperties {
readonly EffectScope: UnwrapRef<typeof import("vue")["EffectScope"]>; readonly EffectScope: UnwrapRef<typeof import("vue")["EffectScope"]>;
readonly ElForm: UnwrapRef<typeof import("element-plus/es")["ElForm"]>;
readonly ElMessage: UnwrapRef< readonly ElMessage: UnwrapRef<
typeof import("element-plus/es")["ElMessage"] typeof import("element-plus/es")["ElMessage"]
>; >;
readonly ElMessageBox: UnwrapRef< readonly ElMessageBox: UnwrapRef<
typeof import("element-plus/es")["ElMessageBox"] typeof import("element-plus/es")["ElMessageBox"]
>; >;
readonly ElTree: UnwrapRef<typeof import("element-plus/es")["ElTree"]>;
readonly asyncComputed: UnwrapRef< readonly asyncComputed: UnwrapRef<
typeof import("@vueuse/core")["asyncComputed"] typeof import("@vueuse/core")["asyncComputed"]
>; >;
@ -943,14 +939,12 @@ declare module "vue" {
declare module "@vue/runtime-core" { declare module "@vue/runtime-core" {
interface ComponentCustomProperties { interface ComponentCustomProperties {
readonly EffectScope: UnwrapRef<typeof import("vue")["EffectScope"]>; readonly EffectScope: UnwrapRef<typeof import("vue")["EffectScope"]>;
readonly ElForm: UnwrapRef<typeof import("element-plus/es")["ElForm"]>;
readonly ElMessage: UnwrapRef< readonly ElMessage: UnwrapRef<
typeof import("element-plus/es")["ElMessage"] typeof import("element-plus/es")["ElMessage"]
>; >;
readonly ElMessageBox: UnwrapRef< readonly ElMessageBox: UnwrapRef<
typeof import("element-plus/es")["ElMessageBox"] typeof import("element-plus/es")["ElMessageBox"]
>; >;
readonly ElTree: UnwrapRef<typeof import("element-plus/es")["ElTree"]>;
readonly asyncComputed: UnwrapRef< readonly asyncComputed: UnwrapRef<
typeof import("@vueuse/core")["asyncComputed"] typeof import("@vueuse/core")["asyncComputed"]
>; >;

View File

@ -9,6 +9,8 @@ export {};
declare module "@vue/runtime-core" { declare module "@vue/runtime-core" {
export interface GlobalComponents { export interface GlobalComponents {
AppMain: typeof import("./../layout/components/AppMain.vue")["default"];
BarChart: typeof import("./../views/dashboard/components/BarChart.vue")["default"];
Breadcrumb: typeof import("./../components/Breadcrumb/index.vue")["default"]; Breadcrumb: typeof import("./../components/Breadcrumb/index.vue")["default"];
ElAlert: typeof import("element-plus/es")["ElAlert"]; ElAlert: typeof import("element-plus/es")["ElAlert"];
ElBreadcrumb: typeof import("element-plus/es")["ElBreadcrumb"]; ElBreadcrumb: typeof import("element-plus/es")["ElBreadcrumb"];
@ -46,9 +48,11 @@ declare module "@vue/runtime-core" {
ElTree: typeof import("element-plus/es")["ElTree"]; ElTree: typeof import("element-plus/es")["ElTree"];
ElTreeSelect: typeof import("element-plus/es")["ElTreeSelect"]; ElTreeSelect: typeof import("element-plus/es")["ElTreeSelect"];
ElUpload: typeof import("element-plus/es")["ElUpload"]; ElUpload: typeof import("element-plus/es")["ElUpload"];
FunnelChart: typeof import("./../views/dashboard/components/FunnelChart.vue")["default"];
GithubCorner: typeof import("./../components/GithubCorner/index.vue")["default"]; GithubCorner: typeof import("./../components/GithubCorner/index.vue")["default"];
Hamburger: typeof import("./../components/Hamburger/index.vue")["default"]; Hamburger: typeof import("./../components/Hamburger/index.vue")["default"];
IconSelect: typeof import("./../components/IconSelect/index.vue")["default"]; IconSelect: typeof import("./../components/IconSelect/index.vue")["default"];
IEpArrowDown: typeof import("~icons/ep/arrow-down")["default"];
IEpCaretBottom: typeof import("~icons/ep/caret-bottom")["default"]; IEpCaretBottom: typeof import("~icons/ep/caret-bottom")["default"];
IEpCaretTop: typeof import("~icons/ep/caret-top")["default"]; IEpCaretTop: typeof import("~icons/ep/caret-top")["default"];
IEpClose: typeof import("~icons/ep/close")["default"]; IEpClose: typeof import("~icons/ep/close")["default"];
@ -62,18 +66,30 @@ declare module "@vue/runtime-core" {
IEpRefreshLeft: typeof import("~icons/ep/refresh-left")["default"]; IEpRefreshLeft: typeof import("~icons/ep/refresh-left")["default"];
IEpSearch: typeof import("~icons/ep/search")["default"]; IEpSearch: typeof import("~icons/ep/search")["default"];
IEpSetting: typeof import("~icons/ep/setting")["default"]; IEpSetting: typeof import("~icons/ep/setting")["default"];
IEpSortDown: typeof import("~icons/ep/sort-down")["default"];
IEpSortUp: typeof import("~icons/ep/sort-up")["default"];
IEpTop: typeof import("~icons/ep/top")["default"]; IEpTop: typeof import("~icons/ep/top")["default"];
IEpUploadFilled: typeof import("~icons/ep/upload-filled")["default"]; IEpUploadFilled: typeof import("~icons/ep/upload-filled")["default"];
LangSelect: typeof import("./../components/LangSelect/index.vue")["default"]; LangSelect: typeof import("./../components/LangSelect/index.vue")["default"];
Link: typeof import("./../layout/components/Sidebar/Link.vue")["default"];
Logo: typeof import("./../layout/components/Sidebar/Logo.vue")["default"];
MultiUpload: typeof import("./../components/Upload/MultiUpload.vue")["default"]; MultiUpload: typeof import("./../components/Upload/MultiUpload.vue")["default"];
Navbar: typeof import("./../layout/components/Navbar.vue")["default"];
Pagination: typeof import("./../components/Pagination/index.vue")["default"]; Pagination: typeof import("./../components/Pagination/index.vue")["default"];
PieChart: typeof import("./../views/dashboard/components/PieChart.vue")["default"];
RadarChart: typeof import("./../views/dashboard/components/RadarChart.vue")["default"];
RightPanel: typeof import("./../components/RightPanel/index.vue")["default"]; RightPanel: typeof import("./../components/RightPanel/index.vue")["default"];
RouterLink: typeof import("vue-router")["RouterLink"]; RouterLink: typeof import("vue-router")["RouterLink"];
RouterView: typeof import("vue-router")["RouterView"]; RouterView: typeof import("vue-router")["RouterView"];
ScrollPane: typeof import("./../layout/components/TagsView/ScrollPane.vue")["default"];
Settings: typeof import("./../layout/components/Settings/index.vue")["default"];
Sidebar: typeof import("./../layout/components/Sidebar/index.vue")["default"];
SidebarItem: typeof import("./../layout/components/Sidebar/SidebarItem.vue")["default"];
SingleUpload: typeof import("./../components/Upload/SingleUpload.vue")["default"]; SingleUpload: typeof import("./../components/Upload/SingleUpload.vue")["default"];
SizeSelect: typeof import("./../components/SizeSelect/index.vue")["default"]; SizeSelect: typeof import("./../components/SizeSelect/index.vue")["default"];
SvgIcon: typeof import("./../components/SvgIcon/index.vue")["default"]; SvgIcon: typeof import("./../components/SvgIcon/index.vue")["default"];
TagInput: typeof import("./../components/TagInput/index.vue")["default"]; TagInput: typeof import("./../components/TagInput/index.vue")["default"];
TagsView: typeof import("./../layout/components/TagsView/index.vue")["default"];
WangEditor: typeof import("./../components/WangEditor/index.vue")["default"]; WangEditor: typeof import("./../components/WangEditor/index.vue")["default"];
} }
export interface ComponentCustomProperties { export interface ComponentCustomProperties {

View File

@ -8,12 +8,6 @@ defineOptions({
import { useUserStore } from "@/store/modules/user"; import { useUserStore } from "@/store/modules/user";
import { useTransition, TransitionPresets } from "@vueuse/core"; import { useTransition, TransitionPresets } from "@vueuse/core";
import GithubCorner from "@/components/GithubCorner/index.vue";
import SvgIcon from "@/components/SvgIcon/index.vue";
import BarChart from "./components/BarChart.vue";
import PieChart from "./components/PieChart.vue";
import RadarChart from "./components/RadarChart.vue";
const userStore = useUserStore(); const userStore = useUserStore();
const date: Date = new Date(); const date: Date = new Date();
@ -90,26 +84,26 @@ orderCount.value = 2000;
{{ greetings }} {{ greetings }}
</div> </div>
<div class="space-x-2 flex items-center"> <div class="space-x-2 flex items-center justify-end">
<el-link <el-link
target="_blank" target="_blank"
type="danger" type="danger"
href="https://blog.csdn.net/u013737132/article/details/130191394" href="https://blog.csdn.net/u013737132/article/details/130191394"
>官方0到1教程</el-link >💥官方从零到一文档</el-link
> >
<el-divider direction="vertical" /> <el-divider direction="vertical" />
<el-link <el-link
target="_blank" target="_blank"
type="success" type="success"
href="https://gitee.com/youlaiorg/vue3-element-admin" href="https://gitee.com/youlaiorg"
>Gitee源码</el-link >Gitee</el-link
> >
<el-divider direction="vertical" /> <el-divider direction="vertical" />
<el-link <el-link
target="_blank" target="_blank"
type="primary" type="primary"
href="https://github.com/youlaitech/vue3-element-admin" href="https://github.com/youlaitech"
>GitHub源码 >GitHub
</el-link> </el-link>
</div> </div>
</div> </div>
@ -160,7 +154,7 @@ orderCount.value = 2000;
</div> </div>
<div class="flex flex-col space-y-3"> <div class="flex flex-col space-y-3">
<div class="text-[var(--el-text-color-secondary)]">收入金额</div> <div class="text-[var(--el-text-color-secondary)]">收入金额</div>
<div class="text-lg"> <div class="text-lg text-right">
{{ Math.round(amountOutput) }} {{ Math.round(amountOutput) }}
</div> </div>
</div> </div>

View File

@ -53,39 +53,41 @@ export default defineConfig(({ mode }: ConfigEnv): UserConfig => {
}, },
plugins: [ plugins: [
vue(), vue(),
UnoCSS({ UnoCSS({}),
/* options */
}),
AutoImport({ AutoImport({
// 自动导入 Vue 相关函数ref, reactive, toRef 等 // 自动导入 Vue 相关函数ref, reactive, toRef 等
imports: ["vue", "@vueuse/core"], imports: ["vue", "@vueuse/core"],
eslintrc: { eslintrc: {
enabled: false, // Default `false` enabled: false,
filepath: "./.eslintrc-auto-import.json", // Default `./.eslintrc-auto-import.json` filepath: "./.eslintrc-auto-import.json",
globalsPropValue: true, // Default `true`, (true | false | 'readonly' | 'readable' | 'writable' | 'writeable') globalsPropValue: true,
}, },
resolvers: [ resolvers: [
// 自动导入 Element Plus 相关函数ElMessage, ElMessageBox... (带样式) // 自动导入 Element Plus 相关函数ElMessage, ElMessageBox... (带样式)
ElementPlusResolver(), ElementPlusResolver(),
// 自动导入图标组件
IconsResolver({}), IconsResolver({}),
], ],
vueTemplate: true, // 是否在 vue 模板中自动导入 vueTemplate: true,
dts: false, // 关闭自动生成 // 配置文件生成位置(false:关闭自动生成)
//dts: path.resolve(pathSrc, "types", "auto-imports.d.ts"), // 自动导入组件类型声明文件位置,默认根目录 dts: false,
// dts: "src/types/auto-imports.d.ts",
}), }),
Components({ Components({
resolvers: [ resolvers: [
// 自动注册图标组件
IconsResolver({
enabledCollections: ["ep"], //@iconify-json/ep 是 Element Plus 的图标库
}),
// 自动导入 Element Plus 组件 // 自动导入 Element Plus 组件
ElementPlusResolver(), ElementPlusResolver(),
// 自动导入图标组件
IconsResolver({
// @iconify-json/ep 是 Element Plus 的图标库
enabledCollections: ["ep"],
}),
], ],
dts: false, // 关闭自动生成 // 指定自定义组件位置(默认:src/components)
// dts: path.resolve(pathSrc, "types", "components.d.ts"), // 自动导入组件类型声明文件位置,默认根目录 dirs: ["src/**/components"],
// 配置文件位置(false:关闭自动生成)
dts: false,
// dts: "src/types/components.d.ts",
}), }),
Icons({ Icons({
@ -100,7 +102,7 @@ export default defineConfig(({ mode }: ConfigEnv): UserConfig => {
symbolId: "icon-[dir]-[name]", symbolId: "icon-[dir]-[name]",
}), }),
], ],
// 预加载项目必需的组件
optimizeDeps: { optimizeDeps: {
include: [ include: [
"vue", "vue",