lct
Your Name
2022-07-07 fd285d6245ddd54c2eef8237eb878f573d665f94
vite.config.ts
@@ -3,77 +3,77 @@
import { defineConfig, loadEnv, ConfigEnv } from 'vite';
const pathResolve = (dir: string): any => {
   return resolve(__dirname, '.', dir);
    return resolve(__dirname, '.', dir);
};
const alias: Record<string, string> = {
   '/@': pathResolve('./src/'),
   'vue-i18n': 'vue-i18n/dist/vue-i18n.cjs.js',
    '/@': pathResolve('./src/'),
    'vue-i18n': 'vue-i18n/dist/vue-i18n.cjs.js'
};
const viteConfig = defineConfig((mode: ConfigEnv) => {
   const env = loadEnv(mode.mode, process.cwd());
   return {
      plugins: [vue()],
      root: process.cwd(),
      resolve: { alias },
      base: mode.command === 'serve' ? './' : env.VITE_PUBLIC_PATH,
      hmr: true,
      optimizeDeps: {
         include: ['element-plus/lib/locale/lang/zh-cn', 'element-plus/lib/locale/lang/en', 'element-plus/lib/locale/lang/zh-tw'],
      },
      server: {
         host: '0.0.0.0',
         port: env.VITE_PORT as unknown as number,
         open: env.VITE_OPEN,
         proxy: {
            '/gitee': {
               target: 'https://gitee.com',
               ws: true,
               changeOrigin: true,
               rewrite: (path) => path.replace(/^\/gitee/, ''),
            },
         },
      },
      build: {
         outDir: 'dist',
         sourcemap: false,
         chunkSizeWarningLimit: 1500,
         rollupOptions: {
            output: {
               entryFileNames: `assets/[name].${new Date().getTime()}.js`,
               chunkFileNames: `assets/[name].${new Date().getTime()}.js`,
               assetFileNames: `assets/[name].${new Date().getTime()}.[ext]`,
               compact: true,
               manualChunks: {
                  vue: ['vue', 'vue-router', 'pinia'],
                  echarts: ['echarts'],
               },
            },
         },
      },
      css: {
         postcss: {
            plugins: [
               {
                  postcssPlugin: 'internal:charset-removal',
                  AtRule: {
                     charset: (atRule) => {
                        if (atRule.name === 'charset') {
                           atRule.remove();
                        }
                     },
                  },
               },
            ],
         },
      },
      define: {
         __VUE_I18N_LEGACY_API__: JSON.stringify(false),
         __VUE_I18N_FULL_INSTALL__: JSON.stringify(false),
         __INTLIFY_PROD_DEVTOOLS__: JSON.stringify(false),
      },
   };
    const env = loadEnv(mode.mode, process.cwd());
    return {
        plugins: [vue()],
        root: process.cwd(),
        resolve: { alias },
        base: mode.command === 'serve' ? './' : env.VITE_PUBLIC_PATH,
        hmr: true,
        optimizeDeps: {
            include: ['element-plus/lib/locale/lang/zh-cn', 'element-plus/lib/locale/lang/en', 'element-plus/lib/locale/lang/zh-tw']
        },
        server: {
            host: '0.0.0.0',
            port: env.VITE_PORT as unknown as number,
            open: env.VITE_OPEN,
            proxy: {
                '/gitee': {
                    target: 'https://gitee.com',
                    ws: true,
                    changeOrigin: true,
                    rewrite: (path) => path.replace(/^\/gitee/, '')
                }
            }
        },
        build: {
            outDir: 'dist',
            sourcemap: false,
            chunkSizeWarningLimit: 1500,
            rollupOptions: {
                output: {
                    entryFileNames: `assets/[name].${new Date().getTime()}.js`,
                    chunkFileNames: `assets/[name].${new Date().getTime()}.js`,
                    assetFileNames: `assets/[name].${new Date().getTime()}.[ext]`,
                    compact: true,
                    manualChunks: {
                        vue: ['vue', 'vue-router', 'pinia'],
                        echarts: ['echarts']
                    }
                }
            }
        },
        css: {
            postcss: {
                plugins: [
                    {
                        postcssPlugin: 'internal:charset-removal',
                        AtRule: {
                            charset: (atRule) => {
                                if (atRule.name === 'charset') {
                                    atRule.remove();
                                }
                            }
                        }
                    }
                ]
            }
        },
        define: {
            __VUE_I18N_LEGACY_API__: JSON.stringify(false),
            __VUE_I18N_FULL_INSTALL__: JSON.stringify(false),
            __INTLIFY_PROD_DEVTOOLS__: JSON.stringify(false)
        }
    };
});
export default viteConfig;