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:
36
config/build/buildResolvers.ts
Normal file
36
config/build/buildResolvers.ts
Normal 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: {},
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user