import { defineConfig } from "vite"; import vue from "@vitejs/plugin-vue"; import path from "path"; import AutoImport from "unplugin-auto-import/vite"; import Components from "unplugin-vue-components/vite"; import { ElementPlusResolver } from "unplugin-vue-components/resolvers"; export default defineConfig({ // 开发服务器配置(可选,解决跨域等问题) // server: { // host: "0.0.0.0", // 允许局域网访问 // port: 5173, // 自定义端口 // open: true, // 启动后自动打开浏览器 // }, plugins: [ vue(), // 自动导入 Vue/VueRouter/Element Plus API AutoImport({ imports: ["vue", "vue-router"], resolvers: [ElementPlusResolver({ importStyle: "css" })], dts: path.resolve(__dirname, "src/auto-imports.d.ts"), eslintrc: { enabled: true, filepath: path.resolve(__dirname, ".eslintrc-auto-import.json"), }, }), // 自动导入 Element Plus 组件 Components({ dirs: ["src/components"], resolvers: [ElementPlusResolver({ importStyle: "css" })], dts: path.resolve(__dirname, "src/components.d.ts"), }), ], resolve: { alias: { "@": path.resolve(__dirname, "src"), }, // 省略文件扩展名,导入时无需写 .vue/.scss/.js extensions: [ ".mjs", ".js", ".ts", ".jsx", ".tsx", ".json", ".vue", ".less", ], }, css: { preprocessorOptions: { less: { // 全局注入:用函数判断,避免给 global.less 自身注入导致循环导入 additionalData: (content, filename) => { if (!filename.includes("global.less")) { return `@import "@/assets/less/global.less";${content}`; } return content; }, charset: false, }, }, }, });