import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; import path from 'path'; import tailwindcss from '@tailwindcss/vite'; import pkgs from './package.json' with { type: 'json' }; import basicSsl from '@vitejs/plugin-basic-ssl'; const version = pkgs.version || '0.0.1'; const isDev = process.env.NODE_ENV === 'development'; const basename = isDev ? '/' : pkgs?.basename || '/'; const plugins = [] plugins.push(basicSsl()); let proxy = {} if(isDev){ proxy = { '/api': { target: 'https://kevisual.xiongxiao.me', changeOrigin: true, // cookieDomainRewrite: 'localhost', }, }; } // https://vitejs.dev/config/ export default defineConfig({ plugins: [react(), tailwindcss(), ...plugins], resolve: { alias: { '@': path.resolve(__dirname, './src'), }, }, // base: basename, base: './', define: { DEV_SERVER: JSON.stringify(process.env.NODE_ENV === 'development'), VERSION: JSON.stringify(version), BASE_NAME: JSON.stringify(basename), 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV), }, build: { target: 'modules', // minify: false, lib: { entry: './src/libs.ts', formats: ['es'], fileName: ()=>`render.js`, cssFileName: `render`, }, rollupOptions: { output: { exports: 'named', // entryFileNames: 'main.js', assetFileNames: (chunkInfo) => { const names = chunkInfo.names || []; console.log('names',names); if(names.includes('libs')){ return '[name].[ext]' } return 'assets/[name].[hash].[ext]'; }, // chunkFileNames: (chunkInfo) => { // const names = chunkInfo.names || []; // return 'assets/[name].[hash].[ext]'; // }, }, // output: { // assetFileNames: (chunkInfo) => { // console.log(chunkInfo.names); // if (chunkInfo.names?.includes('render')) { // return '[name].[ext]'; // } // return 'assets/[name].[hash].[ext]'; // }, // }, }, }, server: { port: 6006, host: '0.0.0.0', proxy: { '/api': { target: 'http://localhost:3000', changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, '/api'), }, '/api/router': { target: 'ws://localhost:3000', changeOrigin: true, ws: true, rewriteWsOrigin: true, rewrite: (path) => path.replace(/^\/api/, '/api'), }, ...proxy, }, }, });