feat: модульная конфигурация webpack с React 19 и TypeScript 5

- Создана модульная архитектура webpack конфигурации в config/build/
- Настроены loader'ы: Babel, TypeScript, CSS/SCSS, File, SVGR
- Добавлены плагины: HtmlWebpackPlugin, MiniCssExtractPlugin, ReactRefresh, BundleAnalyzer
- Настроен dev-сервер с HMR и поддержкой SPA роутинга
- Добавлена полная JSDoc документация на русском языке
This commit is contained in:
Ilia Mashkov
2025-11-19 09:59:39 +03:00
commit 1376a20c90
12 changed files with 493 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
import webpack from 'webpack'
import { BuildOptions } from './types/config'
/**
* Конфигурация разрешения модулей для webpack
*
* Определяет, как webpack будет искать и разрешать импорты модулей.
*
* Настройки:
* - extensions: автоматически разрешает указанные расширения файлов
* - preferAbsolute: предпочитает абсолютные пути относительным
* - modules: директории для поиска модулей
* - mainFiles: имена файлов по умолчанию при импорте директории
* - alias: алиасы для упрощения импортов (можно расширить)
*
* @param {BuildOptions} options - Опции сборки
* @param {BuildPaths} options.paths - Пути проекта
* @returns {webpack.ResolveOptions} Конфигурация resolve для webpack
*
* @example
* // Благодаря extensions можно писать:
* import Component from './Component' // вместо './Component.tsx'
*
* // Благодаря mainFiles можно писать:
* import utils from './utils' // вместо './utils/index.ts'
*/
export function buildResolvers(options: BuildOptions): webpack.ResolveOptions {
return {
extensions: ['.tsx', '.ts', '.js'],
preferAbsolute: true,
modules: [options.paths.src, 'node_modules'],
mainFiles: ['index'],
alias: {},
}
}