Files
paidui-wechat/vite.config.ts
T
2023-04-18 20:02:38 +08:00

102 lines
2.6 KiB
TypeScript

import { defineConfig, loadEnv } from "vite";
import vue from "@vitejs/plugin-vue";
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 legacy from "@vitejs/plugin-legacy";
import proxyConfig from "./proxy.config";
import { appName, injectScriptStr } from "./config";
import path from "path";
type enforceType = "post" | "pre";
const enforceValue:enforceType = "post";
const setCrossoriginUseCredentials = () => {
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(),
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"
]
}),
setCrossoriginUseCredentials()
],
css: {
preprocessorOptions: {
less: {
javascriptEnabled: true
}
},
postcss: {
plugins: [
postcsspxtoviewport({
viewportWidth: 375,
selectorBlackList: [""]
})
]
}
},
server: {
proxy: proxyConfig
},
resolve: {
alias: {
"@": path.resolve(__dirname, "src")
}
}
});
};