- Создана модульная архитектура webpack конфигурации в config/build/ - Настроены loader'ы: Babel, TypeScript, CSS/SCSS, File, SVGR - Добавлены плагины: HtmlWebpackPlugin, MiniCssExtractPlugin, ReactRefresh, BundleAnalyzer - Настроен dev-сервер с HMR и поддержкой SPA роутинга - Добавлена полная JSDoc документация на русском языке
31 lines
951 B
TypeScript
31 lines
951 B
TypeScript
/**
|
||
* Конфигурация 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
|
||
}
|