1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- import { fileURLToPath, URL } from "node:url";
- import { defineConfig, loadEnv } from "vite";
- import vue from "@vitejs/plugin-vue";
- import vueDevTools from "vite-plugin-vue-devtools";
- import vueJsx from "@vitejs/plugin-vue-jsx";
- import { createSvgIconsPlugin } from "vite-plugin-svg-icons";
- import { codeInspectorPlugin } from "code-inspector-plugin";
- import AutoImport from "unplugin-auto-import/vite";
- import { resolve } from "path";
- // https://vite.dev/config/
- export default defineConfig(({ mode }) => {
- const env = loadEnv(mode, process.cwd());
- return {
- base: "./",
- plugins: [
- vue(),
- vueJsx(),
- AutoImport({
- imports: ["vue", "vue-router"],
- }),
- // vueDevTools(),
- createSvgIconsPlugin({
- // 指定需要缓存的图标文件夹
- iconDirs: [resolve(process.cwd(), "src/assets/svg")],
- // 指定symbolId格式
- symbolId: "icon-[dir]-[name]",
- }),
- codeInspectorPlugin({
- bundler: "vite",
- }),
- ],
- resolve: {
- alias: {
- "@": fileURLToPath(new URL("./src", import.meta.url)),
- },
- },
- css: {
- // css预处理器
- preprocessorOptions: {
- less: {
- charset: false, // 解决中文乱码
- javascriptEnabled: true,
- additionalData:
- '@import "@/assets/css/global.less";@import "@/assets/css/theme.less";',
- },
- },
- },
- build: {
- minify: true, // 生产环境不生成sourcemap
- target: "es2015",
- // 警报门槛,限制大文件大小
- chunkSizeWarningLimit: 5000,
- rollupOptions: {
- external: [], // 外部化处理那些你不想打包进库的依赖
- // 静态资源分类打包
- output: {
- chunkFileNames: "static/js/[name]-[hash].js",
- entryFileNames: "static/js/[name]-[hash].js",
- assetFileNames: "static/[ext]/[name]-[hash].[ext]",
- },
- },
- },
- server: {
- host: true,
- port: 5173,
- open: true,
- cors: true,
- hmr: true,
- proxy: {
- "^/api": {
- target: env.VITE_PRO_PATH,
- changeOrigin: true,
- // secure: false,
- },
- },
- },
- };
- });
|