123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- import { defineConfig, loadEnv } from "vite";
- import vue from "@vitejs/plugin-vue";
- import path from "node:path";
- import { createHtmlPlugin } from "vite-plugin-html";
- import { createSvgIconsPlugin } from "vite-plugin-svg-icons";
- import { version } from "./package.json";
- import fs from 'fs'
- const envDir = process.cwd() + '/profile'
- // https://vite.dev/config/
- export default ({ mode }: any) => {
- const env = loadEnv(mode, envDir);
- let proxy: any = {};
- if (env.VITE_MOCK_ENV) {
- const mockEnv = loadEnv(env.VITE_MOCK_ENV, envDir);
- console.log('mockEnv', mockEnv)
- const getProxy = (prev: string, api: string) => ({
- target: api,
- changeOrigin: true,
- rewrite: (path: any) => path.replace(prev, ""),
- });
- if (env.VITE_MOCK_PROXY) {
- proxy[env.VITE_MOCK_PROXY] = getProxy(
- env.VITE_MOCK_PROXY,
- mockEnv.VITE_MOCK_PROXY
- );
- } else {
- for (const key in env) {
- if (env[key].includes("/") && env[key] !== mockEnv[key]) {
- proxy[env[key]] = getProxy(env[key], mockEnv[key]);
- }
- }
- }
- console.log(proxy)
- }
- const outDir = env.VITE_BUILD_DIR || ''
- return defineConfig({
- envDir: envDir,
- build: {
- outDir: `dist/${outDir}`,
- },
- base: "./",
- resolve: {
- alias: {
- "@/": `${path.resolve(__dirname, "src")}/`,
- },
- },
- css: {
- preprocessorOptions: {
- scss: {
- quietDeps: true,
- additionalData: `
- @forward 'element-plus/theme-chalk/src/common/var' with (
- $colors: (
- 'primary': (
- 'base': ${env.VITE_PRIMARY},
- ),
- ),
- );
- `,
- },
- },
- },
- server: {
- port: 9010,
- open: true,
- host: "0.0.0.0",
- proxy: proxy,
- },
- plugins: [
- {
- name: "remove-static-models",
- closeBundle() {
- const dir = path.resolve(__dirname, 'dist', outDir || '', "static/models");
- console.log('remove dist', dir)
- if (fs.existsSync(dir)) {
- fs.rmSync(dir, { recursive: true, force: true });
- console.log("Removed dist/static/models directory after build.");
- }
- },
- },
- createSvgIconsPlugin({
- iconDirs: [path.resolve(process.cwd(), "public/icons")],
- symbolId: "icon-[dir]-[name]",
- }),
- createHtmlPlugin({
- template: "index.html",
- entry: `/src${env.VITE_ENTRY}`,
- inject: {
- data: {
- title: env.VITE_TITLE,
- },
- },
- }),
- vue(),
- ],
- define: {
- __VERSION__: JSON.stringify(version),
- },
- });
- };
|