feat: 打包后的文件提供传统浏览器兼容性支持

This commit is contained in:
xiaoxian521 2021-12-15 13:25:18 +08:00
parent 39159d5e7b
commit eb0771e7ec
6 changed files with 1447 additions and 3286 deletions

View File

@ -6,3 +6,6 @@ VITE_ROUTER_HISTORY = "hash"
# 线上环境后端地址 # 线上环境后端地址
VITE_PROXY_DOMAIN_REAL = "" VITE_PROXY_DOMAIN_REAL = ""
# 是否为打包后的文件提供传统浏览器兼容性支持 支持 true 不支持 false
VITE_LEGACY = false

View File

@ -6,7 +6,8 @@ const warpperEnv = (envConf: Recordable): ViteEnv => {
VITE_PUBLIC_PATH: "", VITE_PUBLIC_PATH: "",
VITE_PROXY_DOMAIN: "", VITE_PROXY_DOMAIN: "",
VITE_PROXY_DOMAIN_REAL: "", VITE_PROXY_DOMAIN_REAL: "",
VITE_ROUTER_HISTORY: "" VITE_ROUTER_HISTORY: "",
VITE_LEGACY: false
}; };
for (const envName of Object.keys(envConf)) { for (const envName of Object.keys(envConf)) {

View File

@ -85,6 +85,7 @@
"@types/qs": "^6.9.7", "@types/qs": "^6.9.7",
"@typescript-eslint/eslint-plugin": "4.31.0", "@typescript-eslint/eslint-plugin": "4.31.0",
"@typescript-eslint/parser": "4.31.0", "@typescript-eslint/parser": "4.31.0",
"@vitejs/plugin-legacy": "^1.6.4",
"@vitejs/plugin-vue": "^1.10.2", "@vitejs/plugin-vue": "^1.10.2",
"@vitejs/plugin-vue-jsx": "^1.3.1", "@vitejs/plugin-vue-jsx": "^1.3.1",
"@vue/compiler-sfc": "^3.2.24", "@vue/compiler-sfc": "^3.2.24",

4714
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

1
types/global.d.ts vendored
View File

@ -69,6 +69,7 @@ declare global {
VITE_PROXY_DOMAIN: string; VITE_PROXY_DOMAIN: string;
VITE_PROXY_DOMAIN_REAL: string; VITE_PROXY_DOMAIN_REAL: string;
VITE_ROUTER_HISTORY: string; VITE_ROUTER_HISTORY: string;
VITE_LEGACY: boolean;
} }
declare interface ServerConfigs { declare interface ServerConfigs {

View File

@ -1,6 +1,7 @@
import { resolve } from "path"; import { resolve } from "path";
import vue from "@vitejs/plugin-vue"; import vue from "@vitejs/plugin-vue";
import svgLoader from "vite-svg-loader"; import svgLoader from "vite-svg-loader";
import legacy from "@vitejs/plugin-legacy";
import vueJsx from "@vitejs/plugin-vue-jsx"; import vueJsx from "@vitejs/plugin-vue-jsx";
import { warpperEnv, regExps } from "./build"; import { warpperEnv, regExps } from "./build";
import { viteMockServe } from "vite-plugin-mock"; import { viteMockServe } from "vite-plugin-mock";
@ -28,6 +29,7 @@ const alias: Record<string, string> = {
export default ({ command, mode }: ConfigEnv): UserConfigExport => { export default ({ command, mode }: ConfigEnv): UserConfigExport => {
const { const {
VITE_PORT, VITE_PORT,
VITE_LEGACY,
VITE_PUBLIC_PATH, VITE_PUBLIC_PATH,
VITE_PROXY_DOMAIN, VITE_PROXY_DOMAIN,
VITE_PROXY_DOMAIN_REAL VITE_PROXY_DOMAIN_REAL
@ -162,7 +164,14 @@ export default ({ command, mode }: ConfigEnv): UserConfigExport => {
setupProdMockServer(); setupProdMockServer();
`, `,
logger: true logger: true
}) }),
// 是否为打包后的文件提供传统浏览器兼容性支持
VITE_LEGACY
? legacy({
targets: ["ie >= 11"],
additionalLegacyPolyfills: ["regenerator-runtime/runtime"]
})
: null
], ],
optimizeDeps: { optimizeDeps: {
include: [ include: [