import path from 'node:path'; import { mergeRsbuildConfig } from '../../web/node_modules/@rsbuild/core'; import baseConfig from '../../web/rsbuild.config'; const profiling = process.env.PERF_PROFILING === '1'; // prod-сборка с source maps (тот же минифицированный код + .map): для привязки CPU-профиля к file:line web/src (Task 10b) const sourcemap = !profiling && process.env.PERF_SOURCEMAP === '1'; const root = path.resolve(__dirname, '..', '.build', profiling ? 'profiling' : sourcemap ? 'prod-sourcemap' : 'prod'); export default mergeRsbuildConfig(baseConfig, { output: { distPath: { root }, // профилирующая сборка: имена компонентов нужны для отчёта «что перерисовывается» (lib/reactProfile.ts) ...(profiling ? { minify: false } : {}), ...(sourcemap ? { sourceMap: { js: 'source-map' } } : {}), }, resolve: profiling ? { alias: { 'react-dom$': 'react-dom/profiling' } } : {}, server: { port: Number(process.env.PERF_WEB_PORT ?? 8080), proxy: { '/api': { target: 'http://localhost:8000', ws: true, changeOrigin: true, }, }, }, });