feat: 更新升级vite 6

This commit is contained in:
dengtongyu committed 2025-05-28 11:43:29 +08:00
1 parent ac0d3b2f7d
commit f6ad3ae221
53 files changed
+7742 -596

No files matched your search

+46 -72
View File
@@ -1,101 +1,75 @@
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 postcsspxtoviewport from "postcss-px-to-viewport";
import { createHtmlPlugin } from "vite-plugin-html";
import VueSetupExtend from "vite-plugin-vue-setup-extend";
import postcssPxConversion from "postcss-px-conversion";
import legacy from "@vitejs/plugin-legacy";
import proxyConfig from "./proxy.config";
import { appName, injectScriptStr } from "./config";
import path from "path";
import {
setCrossoriginUseCredentials,
injectHtmlVars,
proxyConfig
} from "./vite.util";
type enforceType = "post" | "pre";
const enforceValue:enforceType = "post";
const setCrossoriginUseCredentials = () => {
export default defineConfig(({ mode }) => {
const envDir = `${process.cwd()}/env`;
const env = loadEnv(mode, envDir, "NODE_");
return {
name: "set-crossorigin",
enforce: enforceValue,
transformIndexHtml(html) {
return html.replace(/crossorigin/g, "crossorigin=\"use-credentials\"");
}
};
};
// https://vitejs.dev/config/
export default (opt: any) => {
const { mode } = opt;
const env: any = loadEnv(mode, process.cwd());
return defineConfig({
base: "./",
envDir: "./env",
build: {
target: "es2015"
},
plugins: [
createHtmlPlugin({
inject: {
data: {
title: appName,
injectScript: injectScriptStr
}
vue(),
vueJsx(),
AutoImport({
imports: ["vue", "pinia", {
"vue-router": [
"useLink",
"useRoute",
"useRouter",
"onBeforeRouteLeave",
"onBeforeRouteUpdate",
"createRouter",
"createWebHistory",
"createWebHashHistory"
]
}],
eslintrc: {
// 会在项目根目录自动生成.eslintrc-auto-import.json
enabled: true
}
}),
vue(),
VueSetupExtend(),
Components({
resolvers: [VantResolver()]
}),
legacy({
// targets: ['defaults', 'not IE 11'],
targets: ["chrome 52"],
additionalLegacyPolyfills: ["regenerator-runtime/runtime"],
renderLegacyChunks: true,
polyfills: [
"es.symbol",
"es.array.filter",
"es.promise",
"es.promise.finally",
"es/map",
"es/set",
"es.array.for-each",
"es.object.define-properties",
"es.object.define-property",
"es.object.get-own-property-descriptor",
"es.object.get-own-property-descriptors",
"es.object.keys",
"es.object.to-string",
"web.dom-collections.for-each",
"esnext.global-this",
"esnext.string.match-all"
]
targets: ["chrome 87"]
}),
setCrossoriginUseCredentials()
setCrossoriginUseCredentials(),
injectHtmlVars(env)
],
resolve: {
alias: {
"@": fileURLToPath(new URL("./src", import.meta.url))
}
},
css: {
preprocessorOptions: {
less: {
javascriptEnabled: true
}
},
postcss: {
plugins: [
postcsspxtoviewport({
postcssPxConversion({
viewportWidth: 375
})
]
}
},
server: {
proxy: proxyConfig
proxy: proxyConfig(env)
},
resolve: {
alias: {
"@": path.resolve(__dirname, "src")
}
build: {
modulePreload: false
}
});
};
};
});