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:
30
config/build/loaders/buildBabelLoader.ts
Normal file
30
config/build/loaders/buildBabelLoader.ts
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user