/
viktorphp
/
front-socket
Обзор
Документация
Войти
/
viktorphp
/
front-socket
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
next.config.ts
114 строк
4 KB
Иванов Виктор Евгеньевич
[master]: исправить переход в запись календаря
19 май 2026, 03:41
19 май 2026, 03:41
7ff9e9b
Код
Авторство
О чём код?
import { type NextConfig } from 'next'; const API_URL = process.env.API_URL || process.env.NEXT_PUBLIC_API_URL || 'http://localhost:3000'; console.log('🔍 Next.js Config Debug Info:'); console.log('NEXT_PUBLIC_API_URL:', process.env.NEXT_PUBLIC_API_URL); console.log( 'NEXT_PUBLIC_REACT_APP_SOCKET_URL:', process.env.NEXT_PUBLIC_REACT_APP_SOCKET_URL ); interface WebpackSvgRule { test: RegExp; exclude?: RegExp; } const config: NextConfig = { // Отключаем встроенный ESLint-чек Next.js при билде (используем свой .eslintrc.json) eslint: { ignoreDuringBuilds: true, }, // Включает строгий режим React для выявления потенциальных проблем reactStrictMode: true, // ESM-пакеты, которые Next.js должен транспилировать transpilePackages: ['@xyflow/react', '@xyflow/system'], // Настройки компилятора compiler: { // Добавляет поддержку styled-components с серверным рендерингом styledComponents: true, }, // Экспериментальные функции Next.js experimental: { // Включает типизацию для маршрутов, что дает автодополнение и проверку типов typedRoutes: true, }, // Настройки для webpack webpack: (config) => { // Находим существующее правило для SVG файлов const fileLoaderRule = config.module.rules.find((rule: WebpackSvgRule) => rule.test?.test?.('.svg') ); config.module.rules.push( // Применяем существующее правило только для импортов svg с ?url { ...fileLoaderRule, test: /\.svg$/i, resourceQuery: /url/, // *.svg?url }, // Конвертируем все остальные *.svg импорты в React компоненты { test: /\.svg$/i, issuer: fileLoaderRule.issuer, resourceQuery: { not: [...fileLoaderRule.resourceQuery.not, /url/] }, use: ['@svgr/webpack'], } ); // Исключаем обработку SVG файлов стандартным file-loader'ом в webpack конфигурации Next.js fileLoaderRule.exclude = /\.svg$/i; return config; }, // Настройки для редиректов async rewrites() { return [ { source: '/profile/:path*', destination: `${API_URL}/profile/:path*`, }, { source: '/auth/:path*', destination: `${API_URL}/auth/:path*`, }, { source: '/ancestors/:path*', destination: `${API_URL}/ancestors/:path*`, }, { source: '/ancestors', destination: `${API_URL}/ancestors`, }, { source: '/users/:path*', destination: `${API_URL}/users/:path*`, }, { source: '/diary/entries', destination: `${API_URL}/diary/entries`, }, { source: '/diary/entries/:path*', destination: `${API_URL}/diary/entries/:path*`, }, { source: '/diary/files/:path*', destination: `${API_URL}/diary/files/:path*`, }, { source: '/family-requests/:path*', destination: `${API_URL}/family-requests/:path*`, }, { source: '/family-requests', destination: `${API_URL}/family-requests`, }, ]; }, }; export default config;