feat: Приведение документации в соответствие конфигурации
This commit is contained in:
@@ -94,12 +94,22 @@ Babel используется через `babel-loader` в webpack конфиг
|
||||
```typescript
|
||||
// config/build/loaders/buildBabelLoader.ts
|
||||
{
|
||||
test: /\.(js|jsx|tsx)$/,
|
||||
exclude: /node_modules/,
|
||||
test: /\.(js|jsx|tsx|ts)$/,
|
||||
exclude: [
|
||||
/node_modules/,
|
||||
/\.test\.(ts|tsx)$/, // Исключаем тестовые файлы
|
||||
/\.spec\.(ts|tsx)$/, // Исключаем spec файлы
|
||||
/\.stories\.(ts|tsx)$/ // Исключаем Storybook файлы
|
||||
],
|
||||
use: {
|
||||
loader: 'babel-loader',
|
||||
options: {
|
||||
presets: ['@babel/preset-env'],
|
||||
cacheDirectory: true, // Кеширование для ускорения пересборки
|
||||
presets: [
|
||||
'@babel/preset-env',
|
||||
['@babel/preset-react', { runtime: 'automatic' }],
|
||||
'@babel/preset-typescript' // Компиляция TypeScript через Babel
|
||||
],
|
||||
plugins: [
|
||||
isDev && require.resolve('react-refresh/babel')
|
||||
].filter(Boolean)
|
||||
@@ -108,6 +118,9 @@ Babel используется через `babel-loader` в webpack конфиг
|
||||
}
|
||||
```
|
||||
|
||||
**Важно:** TypeScript компилируется через Babel, а не через `ts-loader`.
|
||||
Проверка типов выполняется отдельно через `pnpm type-check` (tsc --noEmit).
|
||||
|
||||
## React Refresh (только в dev режиме)
|
||||
|
||||
В режиме разработки добавляется плагин `react-refresh/babel` для горячей перезагрузки React компонентов без потери состояния.
|
||||
|
||||
@@ -22,3 +22,15 @@ jest.mock('gsap', () => {
|
||||
Power2: gsapMock.Power2, // Экспортируем Power2 отдельно
|
||||
}
|
||||
})
|
||||
|
||||
// Глобальный мок для @gsap/react
|
||||
jest.mock('@gsap/react', () => ({
|
||||
useGSAP: (fn: () => void) => {
|
||||
// Выполняем функцию немедленно в тестах
|
||||
// eslint-disable-next-line react-hooks/rules-of-hooks
|
||||
const { useEffect } = require('react')
|
||||
useEffect(() => {
|
||||
fn()
|
||||
}, [])
|
||||
},
|
||||
}))
|
||||
|
||||
@@ -34,10 +34,20 @@
|
||||
- **paths**: Настройка алиасов для импортов
|
||||
```json
|
||||
{
|
||||
"@/*": ["./src/*"],
|
||||
"*": ["./src/*"]
|
||||
}
|
||||
```
|
||||
Позволяет импортировать файлы из `src` без указания полного пути
|
||||
Позволяет импортировать файлы из `src` с использованием `@/` или без префикса
|
||||
|
||||
### Типы
|
||||
- **types**: Глобальные типы для проекта
|
||||
```json
|
||||
["node", "jest", "@testing-library/jest-dom"]
|
||||
```
|
||||
- `node` - типы Node.js API
|
||||
- `jest` - типы для Jest тестов
|
||||
- `@testing-library/jest-dom` - типы для дополнительных матчеров Jest
|
||||
|
||||
## Настройки ts-node
|
||||
|
||||
@@ -71,10 +81,13 @@ pnpm type-check
|
||||
### Использование алиасов путей
|
||||
```typescript
|
||||
// Вместо:
|
||||
import { Button } from '../../../components/Button'
|
||||
import { Button } from '../../../shared/ui/Button'
|
||||
|
||||
// Можно писать:
|
||||
import { Button } from 'components/Button'
|
||||
// Можно писать с @ алиасом:
|
||||
import { Button } from '@/shared/ui/Button'
|
||||
|
||||
// Или без префикса (для совместимости):
|
||||
import { Button } from 'shared/ui/Button'
|
||||
```
|
||||
|
||||
### JSX без импорта React
|
||||
|
||||
Reference in New Issue
Block a user