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,30 @@
/**
* Конфигурация Babel loader для webpack
*
* Обрабатывает файлы JavaScript, JSX и TSX с помощью Babel.
* В режиме разработки включает React Refresh для горячей перезагрузки компонентов.
*
* @param {boolean} isDev - Флаг режима разработки
* @returns {Object} Конфигурация babel-loader
*
* @example
* const babelLoader = buildBabelLoader(true)
* // Возвращает loader с React Refresh для разработки
*/
export function buildBabelLoader(isDev: boolean) {
const babelLoader = {
test: /\.(js|jsx|tsx)$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env'],
plugins: [isDev && require.resolve('react-refresh/babel')].filter(
Boolean
),
},
},
}
return babelLoader
}