feat: Приведение документации в соответствие конфигурации
This commit is contained in:
@@ -94,12 +94,22 @@ Babel используется через `babel-loader` в webpack конфиг
|
|||||||
```typescript
|
```typescript
|
||||||
// config/build/loaders/buildBabelLoader.ts
|
// config/build/loaders/buildBabelLoader.ts
|
||||||
{
|
{
|
||||||
test: /\.(js|jsx|tsx)$/,
|
test: /\.(js|jsx|tsx|ts)$/,
|
||||||
exclude: /node_modules/,
|
exclude: [
|
||||||
|
/node_modules/,
|
||||||
|
/\.test\.(ts|tsx)$/, // Исключаем тестовые файлы
|
||||||
|
/\.spec\.(ts|tsx)$/, // Исключаем spec файлы
|
||||||
|
/\.stories\.(ts|tsx)$/ // Исключаем Storybook файлы
|
||||||
|
],
|
||||||
use: {
|
use: {
|
||||||
loader: 'babel-loader',
|
loader: 'babel-loader',
|
||||||
options: {
|
options: {
|
||||||
presets: ['@babel/preset-env'],
|
cacheDirectory: true, // Кеширование для ускорения пересборки
|
||||||
|
presets: [
|
||||||
|
'@babel/preset-env',
|
||||||
|
['@babel/preset-react', { runtime: 'automatic' }],
|
||||||
|
'@babel/preset-typescript' // Компиляция TypeScript через Babel
|
||||||
|
],
|
||||||
plugins: [
|
plugins: [
|
||||||
isDev && require.resolve('react-refresh/babel')
|
isDev && require.resolve('react-refresh/babel')
|
||||||
].filter(Boolean)
|
].filter(Boolean)
|
||||||
@@ -108,6 +118,9 @@ Babel используется через `babel-loader` в webpack конфиг
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Важно:** TypeScript компилируется через Babel, а не через `ts-loader`.
|
||||||
|
Проверка типов выполняется отдельно через `pnpm type-check` (tsc --noEmit).
|
||||||
|
|
||||||
## React Refresh (только в dev режиме)
|
## React Refresh (только в dev режиме)
|
||||||
|
|
||||||
В режиме разработки добавляется плагин `react-refresh/babel` для горячей перезагрузки React компонентов без потери состояния.
|
В режиме разработки добавляется плагин `react-refresh/babel` для горячей перезагрузки React компонентов без потери состояния.
|
||||||
|
|||||||
@@ -22,3 +22,15 @@ jest.mock('gsap', () => {
|
|||||||
Power2: gsapMock.Power2, // Экспортируем Power2 отдельно
|
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**: Настройка алиасов для импортов
|
- **paths**: Настройка алиасов для импортов
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
"@/*": ["./src/*"],
|
||||||
"*": ["./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
|
## Настройки ts-node
|
||||||
|
|
||||||
@@ -71,10 +81,13 @@ pnpm type-check
|
|||||||
### Использование алиасов путей
|
### Использование алиасов путей
|
||||||
```typescript
|
```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
|
### JSX без импорта React
|
||||||
|
|||||||
Reference in New Issue
Block a user