import uni from '@dcloudio/vite-plugin-uni'; import { loadEnv } from 'vite'; import viteCompression from 'vite-plugin-compression'; import path from 'path'; import uniReadPagesV3Plugin from './src/sheep/router/utils/uni-read-pages-v3'; // import mpliveMainfestPlugin from './src/sheep/libs/mplive-manifest-plugin'; // https://vitejs.dev/config/ export default async (command: 'build' | 'serve', mode: string) => { const env = loadEnv(mode, __dirname, 'SHOPRO_'); const { default: Unocss } = await import('unocss/vite'); const isBuild = command === 'build'; const nodeEnv = mode === 'production' ? 'production' : 'development'; const browserProcessEnv = { NODE_ENV: nodeEnv, UNI_APP_X: process.env.UNI_APP_X ?? '', }; const browserProcess = JSON.stringify({ env: { ...browserProcessEnv, }, }); const isH5 = process.env.UNI_PLATFORM === 'h5'; if (isH5) { return { envPrefix: 'SHOPRO_', define: { process: browserProcess, 'process.env': JSON.stringify(browserProcessEnv), 'process.env.NODE_ENV': JSON.stringify(nodeEnv), 'process.env.UNI_APP_X': JSON.stringify(process.env.UNI_APP_X ?? ''), }, plugins: [ uni(), Unocss(), viteCompression({ verbose: false, }), uniReadPagesV3Plugin({ pagesJsonDir: path.resolve(__dirname, './src/pages.json'), includes: ['path', 'aliasPath', 'name', 'meta'], }), ], esbuild: { drop: isBuild ? ['console', 'debugger'] : [], }, server: { host: true, hmr: { overlay: true, }, proxy: { // 应用相关api '/app-api': { target: env.SHOPRO_DEV_BASE_URL, changeOrigin: true, }, // 聊天相关api '/api': { target: 'http://im-platform.htysapp.com', changeOrigin: true, rewrite: (path: string) => path.replace(/^\/api/, ''), }, }, }, resolve: { alias: { '@': path.resolve(__dirname, 'src'), }, }, css: { preprocessorOptions: { scss: { api: 'modern-compiler', }, }, }, }; } else { return { envPrefix: 'SHOPRO_', define: { process: browserProcess, 'process.env': JSON.stringify(browserProcessEnv), 'process.env.NODE_ENV': JSON.stringify(nodeEnv), 'process.env.UNI_APP_X': JSON.stringify(process.env.UNI_APP_X ?? ''), }, plugins: [ uni(), Unocss(), viteCompression({ verbose: false, }), uniReadPagesV3Plugin({ pagesJsonDir: path.resolve(__dirname, './src/pages.json'), includes: ['path', 'aliasPath', 'name', 'meta'], }), ], esbuild: { drop: isBuild ? ['console', 'debugger'] : [], target: 'es2015', supported: { 'optional-chain': false, 'nullish-coalescing': false, }, }, build: { target: 'es2015', }, server: { host: true, hmr: { overlay: true, }, proxy: { // 应用相关api '/app-api': { target: env.SHOPRO_DEV_BASE_URL, changeOrigin: true, }, // 聊天相关api '/api': { target: 'http://im-platform.htysapp.com', changeOrigin: true, rewrite: (path: string) => path.replace(/^\/api/, ''), }, }, }, resolve: { alias: { '@': path.resolve(__dirname, 'src'), }, }, css: { preprocessorOptions: { scss: { api: 'modern-compiler', }, }, }, }; } };