Files
blog/vite.config.ts
2025-07-16 16:35:28 +08:00

92 lines
1.6 KiB
TypeScript

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import dts from "vite-plugin-dts";
import { resolve } from "path";
import VueSetupExtend from "vite-plugin-vue-setup-extend";
import AutoImport from "unplugin-auto-import/vite";
import Components from "unplugin-vue-components/vite";
import { TDesignResolver } from "unplugin-vue-components/resolvers";
export default defineConfig({
base: "/",
plugins: [
vue(),
dts({
include: "./src"
}),
VueSetupExtend(),
AutoImport({
imports: [
"vue",
"vue-router",
"pinia",
{
"axios": [
["default", "axios"]
]
}
],
dts: "src/auto-imports.d.ts",
eslintrc: {
enabled: true,
globalsPropValue: true
},
resolvers: [
TDesignResolver({
library: "vue-next"
})
]
}),
Components({
dirs: [
"src/components",
"src/layout",
"src/views/components"
],
resolvers: [
TDesignResolver({
library: "vue-next"
})
]
})
],
css: {
preprocessorOptions: {
less: {
math: "always",
lessOptions: {
modifyVars: {
"@btn-border-radius": "0"
},
javascriptEnabled: true
}
}
}
},
define: {
"process.env": {}
},
resolve: {
alias: {
"@": resolve(__dirname, "src")
},
extensions: [".js", ".json", ".ts"]
},
server: {
port: 80,
host: "imyeyu.dev"
},
build: {
sourcemap: false,
minify: "terser",
terserOptions: {
compress: {
// eslint-disable-next-line camelcase
drop_console: true,
// eslint-disable-next-line camelcase
drop_debugger: true
}
}
}
});