96 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
import { defineConfig, loadEnv } from "vite";
 | 
						||
import vue from "@vitejs/plugin-vue";
 | 
						||
import eslintPlugin from "vite-plugin-eslint";
 | 
						||
import AutoImport from "unplugin-auto-import/vite";
 | 
						||
import Components from "unplugin-vue-components/vite";
 | 
						||
import {
 | 
						||
  ElementPlusResolver,
 | 
						||
  VantResolver,
 | 
						||
} from "unplugin-vue-components/resolvers";
 | 
						||
// import basicSsl from "@vitejs/plugin-basic-ssl";
 | 
						||
import removeConsole from "vite-plugin-remove-console";
 | 
						||
import EnhanceLog from "vite-plugin-enhance-log";
 | 
						||
import { envParse } from "vite-plugin-env-parse";
 | 
						||
 | 
						||
export default ({ mode }) => {
 | 
						||
  return defineConfig({
 | 
						||
    base: loadEnv(mode, process.cwd()).VITE_BASE,
 | 
						||
    plugins: [
 | 
						||
      vue(),
 | 
						||
      envParse(),
 | 
						||
      eslintPlugin(),
 | 
						||
      removeConsole({
 | 
						||
        includes: [
 | 
						||
          "assert",
 | 
						||
          "clear",
 | 
						||
          "count",
 | 
						||
          "countReset",
 | 
						||
          "createTask",
 | 
						||
          "debug",
 | 
						||
          "dir",
 | 
						||
          "dirxml",
 | 
						||
          "error",
 | 
						||
          "group",
 | 
						||
          "groupCollapsed",
 | 
						||
          "groupEnd",
 | 
						||
          "info",
 | 
						||
          "log",
 | 
						||
          "profile",
 | 
						||
          "profileEnd",
 | 
						||
          "table",
 | 
						||
          "time",
 | 
						||
          "timeEnd",
 | 
						||
          "timeLog",
 | 
						||
          "timeStamp",
 | 
						||
          "trace",
 | 
						||
          "warn",
 | 
						||
        ],
 | 
						||
      }),
 | 
						||
      AutoImport({
 | 
						||
        resolvers: [ElementPlusResolver()],
 | 
						||
      }),
 | 
						||
      Components({
 | 
						||
        resolvers: [ElementPlusResolver(), VantResolver()],
 | 
						||
      }),
 | 
						||
      EnhanceLog({
 | 
						||
        preTip: "🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀",
 | 
						||
      }),
 | 
						||
      // basicSsl(),
 | 
						||
    ],
 | 
						||
    server: {
 | 
						||
      // https: true,
 | 
						||
      host: true, // 本机的局域网IP,不然其他人无法通过IP访问到,0.0.0.0或true会自动获取本机的IP
 | 
						||
      port: 8100, // 端口号
 | 
						||
      open: true, // 是否自动打开浏览器
 | 
						||
      proxy: {
 | 
						||
        [loadEnv(mode, process.cwd()).VITE_PROXY]: {
 | 
						||
          target: loadEnv(mode, process.cwd()).VITE_BASE_URL,
 | 
						||
          changeOrigin: true,
 | 
						||
          ws: true,
 | 
						||
          rewrite: (path) => path.replace(/^\/api/, ""),
 | 
						||
        },
 | 
						||
      },
 | 
						||
    },
 | 
						||
    resolve: {
 | 
						||
      alias: {
 | 
						||
        "@": "/src", // 别名,@代表src目录
 | 
						||
      },
 | 
						||
      extensions: [".mjs", ".js", ".ts", ".jsx", ".tsx", ".json", ".vue"], // 引入文件时哪些后缀名可以不写
 | 
						||
    },
 | 
						||
    build: {
 | 
						||
      rollupOptions: {
 | 
						||
        // 打包多个入口文件
 | 
						||
        // input: {
 | 
						||
        //   admin: path.resolve(__dirname, "index.html"),
 | 
						||
        //   其它入口文件路径需要为src/views/*/index.html
 | 
						||
        // },
 | 
						||
        output: {
 | 
						||
          chunkFileNames: "static/js/[name]-[hash].js",
 | 
						||
          entryFileNames: "static/js/[name]-[hash].js",
 | 
						||
          assetFileNames: "static/[ext]/name-[hash].[ext]",
 | 
						||
        },
 | 
						||
      },
 | 
						||
    },
 | 
						||
  });
 | 
						||
};
 |