123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- import { fileURLToPath, URL } from "node:url";
- import { loadEnv, defineConfig } from "vite";
- import pkg from "./package.json";
- import dayjs from "dayjs";
- import AutoImport from "unplugin-auto-import/vite";
- import AutoComponents from "unplugin-vue-components/vite";
- import vue from "@vitejs/plugin-vue";
- import vueJsx from "@vitejs/plugin-vue-jsx";
- import legacy from "@vitejs/plugin-legacy";
- import { createHtmlPlugin } from "vite-plugin-html";
- // 当前执行node命令时文件夹的地址(工作目录)
- const root = process.cwd();
- // 打包后静态资源的存放路径
- const assetsDir = "assets";
- // __APP_INFO__
- const { dependencies, devDependencies, name, version } = pkg;
- const appVersion = dayjs().format("YYYYMMDDHHmm");
- const lastBuildTime = dayjs().format("YYYY-MM-DD HH:mm:ss");
- const __APP_INFO__ = {
- pkg: { dependencies, devDependencies, name, version },
- version: appVersion,
- lastBuildTime,
- };
- /**
- * Configuring Vite
- *
- * @see https://vitejs.dev/config/
- */
- export default defineConfig(({ mode }) => {
- const env = loadEnv(mode, root);
- return {
- base: "./",
- plugins: [
- vue(),
- vueJsx(),
- AutoImport({
- imports: ["vue", "vue-router"],
- // dirs: ['./src/hooks/**'],
- dts: "./src/auto-imports.d.ts",
- eslintrc: {
- enabled: true,
- },
- }),
- AutoComponents({
- dirs: ["./src/components"],
- extensions: ["vue", "jsx", "tsx"],
- dts: "./src/auto-components.d.ts",
- }),
- createHtmlPlugin({
- inject: {
- data: {
- title: env.VITE_APP_TITLE,
- },
- },
- minify: true,
- }),
- env.VITE_LEGACY === "true" ? legacy() : null,
- ],
- server: {
- port: Number(env.VITE_PORT),
- proxy: {
- "/super_cloud": {
- target: `https://wx.palmnest.com`, // https://wx.palmnest.com/super_cloud
- changeOrigin: true,
- secure: false,
- // followRedirects: true,
- // cookieDomainRewrite: '', // 使用 cookieDomainRewrite 或者是 设置cookie 那行都可以
- configure: (proxy, options) => {
- proxy.on("proxyReq", (proxyReq, req, res) => {
- proxyReq.removeHeader("referer");
- proxyReq.removeHeader("origin");
- });
- proxy.on("proxyRes", (proxyRes, req, res) => {
- // 设置cookie
- if (proxyRes.headers["set-cookie"]) {
- proxyRes.headers["set-cookie"] = replaceDomain(
- Array.isArray(proxyRes.headers["set-cookie"])
- ? proxyRes.headers["set-cookie"][0]
- : proxyRes.headers["set-cookie"]
- );
- }
- function replaceDomain(value) {
- return value
- .replace(/Domain=[a-z.]*;/, "")
- .replace(/secure=.*;/, "");
- }
- });
- },
- },
- },
- },
- build: {
- assetsDir: assetsDir,
- sourcemap: false,
- chunkSizeWarningLimit: 1500,
- rollupOptions: {
- output: {
- entryFileNames: `${assetsDir}/[name].${appVersion}.js`,
- chunkFileNames: `${assetsDir}/[name].${appVersion}.js`,
- assetFileNames: `${assetsDir}/[ext]/[name].${appVersion}.[ext]`,
- },
- },
- },
- resolve: {
- alias: {
- "@": fileURLToPath(new URL("./src", import.meta.url)),
- },
- },
- define: {
- __APP_INFO__: JSON.stringify(__APP_INFO__),
- },
- css: {
- modules: {
- localsConvention: "camelCaseOnly",
- },
- preprocessorOptions: {
- less: {
- modifyVars: {
- hack: `true; @import './src/styles/variable.less';`,
- },
- javascriptEnabled: true,
- },
- },
- },
- };
- });
|