1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-02-23 00:22:19 +01:00
unleash.unleash/frontend/vite.config.mts
Nuno Góis 17d3f67ec1
chore: upgrade vitest to 3.0.6 (#9337)
https://linear.app/unleash/issue/2-3296/upgrade-vitest

Follow-up to https://github.com/Unleash/unleash/pull/9212

The ☝️ PR was failing some tests because `chartjs-adapter-date-fns` is
imported as a [side
effect](https://stackoverflow.com/questions/41127479/es6-import-for-side-effects-meaning)
and seems to be CommonJS-only. When Vitest loads it, it fails to find
named exports (like `_adapters`). By inlining `chartjs-adapter-date-fns`
in our Vitest test config, esbuild transforms it into a proper ES module
for testing.

Additionally, we’re upgrading from v1.4.0 to v3.0.6 directly since our
code seems to be fully compatible.
>Vitest requires Vite >=v5.0.0 and Node >=v18.0.0
2025-02-20 14:24:28 +00:00

91 lines
2.6 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/**'],
server: {
deps: {
inline: ['chartjs-adapter-date-fns'],
},
},
},
css: {
preprocessorOptions: {
scss: {
api: 'modern-compiler',
},
},
},
});
export default mergeConfig(
defineConfig({
base: UNLEASH_BASE_PATH,
build: {
outDir: 'build',
assetsDir: 'static',
assetsInlineLimit: 0,
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,
);