yunzer_go/frontend/vite.config.ts

66 lines
1.8 KiB
TypeScript

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,
},
},
},
});