76 lines
1.8 KiB
TypeScript
76 lines
1.8 KiB
TypeScript
import { fileURLToPath, URL } from "node:url";
|
|
import { defineConfig, loadEnv } from "vite";
|
|
import vue from "@vitejs/plugin-vue";
|
|
import vueJsx from "@vitejs/plugin-vue-jsx";
|
|
import AutoImport from "unplugin-auto-import/vite";
|
|
import Components from "unplugin-vue-components/vite";
|
|
import { VantResolver } from "unplugin-vue-components/resolvers";
|
|
import postcssPxConversion from "postcss-px-conversion";
|
|
import legacy from "@vitejs/plugin-legacy";
|
|
import {
|
|
setCrossoriginUseCredentials,
|
|
injectHtmlVars,
|
|
proxyConfig
|
|
} from "./vite.util";
|
|
|
|
|
|
|
|
export default defineConfig(({ mode }) => {
|
|
const envDir = `${process.cwd()}/env`;
|
|
const env = loadEnv(mode, envDir, "NODE_");
|
|
return {
|
|
base: "./",
|
|
envDir: "./env",
|
|
plugins: [
|
|
vue(),
|
|
vueJsx(),
|
|
AutoImport({
|
|
imports: ["vue", "pinia", {
|
|
"vue-router": [
|
|
"useLink",
|
|
"useRoute",
|
|
"useRouter",
|
|
"onBeforeRouteLeave",
|
|
"onBeforeRouteUpdate",
|
|
"createRouter",
|
|
"createWebHistory",
|
|
"createWebHashHistory"
|
|
]
|
|
}],
|
|
eslintrc: {
|
|
// 会在项目根目录自动生成.eslintrc-auto-import.json
|
|
enabled: true
|
|
}
|
|
}),
|
|
Components({
|
|
resolvers: [VantResolver()]
|
|
}),
|
|
legacy({
|
|
targets: ["chrome 87"]
|
|
}),
|
|
setCrossoriginUseCredentials(),
|
|
injectHtmlVars(env)
|
|
],
|
|
resolve: {
|
|
alias: {
|
|
"@": fileURLToPath(new URL("./src", import.meta.url))
|
|
}
|
|
},
|
|
css: {
|
|
postcss: {
|
|
plugins: [
|
|
postcssPxConversion({
|
|
viewportWidth: 375
|
|
})
|
|
]
|
|
}
|
|
},
|
|
server: {
|
|
proxy: proxyConfig(env)
|
|
},
|
|
build: {
|
|
modulePreload: false
|
|
}
|
|
};
|
|
});
|