mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	After dependabot upgraded us to the new version of Vite, we started having failures on the preloading of CSS modules on certain lazy loaded modules. After investigation, it seems like Vite was adding another stylesheet into the head element when the lazy loaded modules were requested. These stylesheets had the wrong relative path when the assets were loaded from our CDN. We are not sure why this fails, but for now we are turning off cssPreloading. The impact is small, because we have few lazy loaded modules that preload the CSS.
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { defineConfig, mergeConfig } from 'vite';
 | |
| import {
 | |
|     configDefaults,
 | |
|     defineConfig as vitestDefineConfig,
 | |
| } from 'vitest/config';
 | |
| import tsconfigPaths from 'vite-tsconfig-paths';
 | |
| import react from '@vitejs/plugin-react';
 | |
| import svgr from 'vite-plugin-svgr';
 | |
| import envCompatible from 'vite-plugin-env-compatible';
 | |
| 
 | |
| const UNLEASH_API = process.env.UNLEASH_API || 'http://localhost:4242';
 | |
| const UNLEASH_BASE_PATH = process.env.UNLEASH_BASE_PATH || '/';
 | |
| 
 | |
| if (!UNLEASH_BASE_PATH.startsWith('/') || !UNLEASH_BASE_PATH.endsWith('/')) {
 | |
|     console.error('UNLEASH_BASE_PATH must both start and end with /');
 | |
|     process.exit(1);
 | |
| }
 | |
| 
 | |
| const vitestConfig = vitestDefineConfig({
 | |
|     test: {
 | |
|         globals: true,
 | |
|         setupFiles: 'src/setupTests.ts',
 | |
|         environment: 'jsdom',
 | |
|         exclude: [...configDefaults.exclude, '**/cypress/**'],
 | |
|     },
 | |
| });
 | |
| 
 | |
| export default mergeConfig(
 | |
|     defineConfig({
 | |
|         base: UNLEASH_BASE_PATH,
 | |
|         build: {
 | |
|             outDir: 'build',
 | |
|             assetsDir: 'static',
 | |
|             modulePreload: false,
 | |
|             cssCodeSplit: false,
 | |
|         },
 | |
|         server: {
 | |
|             open: true,
 | |
|             host: true,
 | |
|             port: 3000,
 | |
|             proxy: {
 | |
|                 [`${UNLEASH_BASE_PATH}api`]: {
 | |
|                     target: UNLEASH_API,
 | |
|                     changeOrigin: true,
 | |
|                 },
 | |
|                 [`${UNLEASH_BASE_PATH}auth`]: {
 | |
|                     target: UNLEASH_API,
 | |
|                     changeOrigin: true,
 | |
|                 },
 | |
|                 [`${UNLEASH_BASE_PATH}logout`]: {
 | |
|                     target: UNLEASH_API,
 | |
|                     changeOrigin: true,
 | |
|                 },
 | |
|                 [`${UNLEASH_BASE_PATH}health`]: {
 | |
|                     target: UNLEASH_API,
 | |
|                     changeOrigin: true,
 | |
|                 },
 | |
|                 [`${UNLEASH_BASE_PATH}invite`]: {
 | |
|                     target: UNLEASH_API,
 | |
|                     changeOrigin: true,
 | |
|                 },
 | |
|                 [`${UNLEASH_BASE_PATH}edge`]: {
 | |
|                     target: UNLEASH_API,
 | |
|                     changeOrigin: true,
 | |
|                 },
 | |
|             },
 | |
|             fs: {
 | |
|                 allow: ['..'],
 | |
|             },
 | |
|         },
 | |
|         plugins: [react(), tsconfigPaths(), svgr(), envCompatible()],
 | |
|         esbuild: {
 | |
|             logOverride: { 'this-is-undefined-in-esm': 'silent' },
 | |
|         },
 | |
|     }),
 | |
|     vitestConfig
 | |
| );
 |