231 lines
6.4 KiB
Markdown
231 lines
6.4 KiB
Markdown
# 🔧 Последние исправления (Node.js версия)
|
||
|
||
## Дата: 24 декабря 2024
|
||
|
||
## ❌ Проблема
|
||
Netlify использовал Node.js v22.21.1, что вызывало проблемы совместимости с:
|
||
- Vite 5.x
|
||
- Tailwind CSS v4
|
||
- PostCSS
|
||
- TypeScript build tools
|
||
|
||
## ✅ Решение
|
||
|
||
### 1. Зафиксирована версия Node.js на 18 LTS
|
||
|
||
**Создан `.nvmrc`:**
|
||
```
|
||
18
|
||
```
|
||
|
||
**Обновлён `package.json`:**
|
||
```json
|
||
{
|
||
"engines": {
|
||
"node": ">=18.0.0 <22.0.0",
|
||
"npm": ">=9.0.0"
|
||
}
|
||
}
|
||
```
|
||
|
||
**Уже был в `netlify.toml`:**
|
||
```toml
|
||
[build.environment]
|
||
NODE_VERSION = "18"
|
||
```
|
||
|
||
### 2. Исправлен output директорий в vite.config.ts
|
||
|
||
**Было:**
|
||
```typescript
|
||
build: {
|
||
outDir: 'dist',
|
||
}
|
||
```
|
||
|
||
**Стало:**
|
||
```typescript
|
||
build: {
|
||
outDir: 'build',
|
||
}
|
||
```
|
||
|
||
Теперь Vite создаёт папку `build`, что соответствует настройкам в `netlify.toml`.
|
||
|
||
### 3. Обновлены скрипты проверки
|
||
|
||
`check-build.sh` и `check-build.bat` теперь:
|
||
- Проверяют версию Node.js
|
||
- Предупреждают если используется Node.js v22
|
||
- Показывают размер и содержимое build/
|
||
|
||
---
|
||
|
||
## 📁 Изменённые файлы
|
||
|
||
```
|
||
/.nvmrc - СОЗДАН (новый)
|
||
/package.json - ОБНОВЛЁН (добавлен engines)
|
||
/vite.config.ts - ОБНОВЛЁН (outDir: 'build')
|
||
/check-build.sh - ОБНОВЛЁН (проверка Node версии)
|
||
/check-build.bat - ОБНОВЛЁН (проверка Node версии)
|
||
/NODE-VERSION-FIX.md - СОЗДАН (документация)
|
||
/LATEST-FIXES.md - СОЗДАН (этот файл)
|
||
/README.md - ОБНОВЛЁН (требования Node.js)
|
||
```
|
||
|
||
---
|
||
|
||
## 🚀 Что делать дальше
|
||
|
||
### 1. Закоммитьте все изменения
|
||
```bash
|
||
git status
|
||
git add .
|
||
git commit -m "Fix: Pin Node.js to v18 LTS and set Vite outDir to 'build'"
|
||
git push origin main
|
||
```
|
||
|
||
### 2. Netlify автоматически начнёт деплой
|
||
|
||
После пуша Netlify:
|
||
1. Прочитает `.nvmrc` → использует Node.js 18
|
||
2. Установит зависимости с `npm install`
|
||
3. Запустит `npm run build` → Vite создаст папку `build`
|
||
4. Опубликует содержимое `build/` (согласно `netlify.toml`)
|
||
|
||
### 3. Проверка деплоя
|
||
|
||
Откройте **Netlify Deploy Logs** и убедитесь что:
|
||
|
||
```
|
||
✅ v18.x.x is already installed.
|
||
✅ Now using node v18.x.x
|
||
✅ npm run build
|
||
✅ vite v5.x.x building for production...
|
||
✅ build/assets/index-xxxxx.js
|
||
✅ ✓ built in X.XXs
|
||
✅ Deploy successful!
|
||
```
|
||
|
||
---
|
||
|
||
## 🔍 Проверка локально (перед коммитом)
|
||
|
||
Убедитесь что у вас Node.js 18:
|
||
|
||
```bash
|
||
# Проверить версию Node
|
||
node -v
|
||
|
||
# Если не 18, установите через nvm
|
||
nvm install 18
|
||
nvm use 18
|
||
|
||
# Запустите скрипт проверки
|
||
chmod +x check-build.sh
|
||
./check-build.sh
|
||
|
||
# Должно показать:
|
||
# ✅ Node.js версия совместима (v18.x.x)
|
||
# ✅ BUILD OUTPUT: build
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 Сравнение версий Node.js
|
||
|
||
| Версия | Статус | Совместимость | Рекомендация |
|
||
|--------|--------|---------------|--------------|
|
||
| Node.js 16 | EOL | ⚠️ Устарела | Обновите на 18 |
|
||
| Node.js 18 | LTS ✅ | ✅ Отлично | **Используйте** |
|
||
| Node.js 20 | LTS | ✅ Хорошо | Допустимо |
|
||
| Node.js 22 | Current | ⚠️ Проблемы | Не рекомендуется |
|
||
|
||
**LTS** = Long Term Support (долгосрочная поддержка)
|
||
|
||
---
|
||
|
||
## 🆘 Если деплой всё ещё не работает
|
||
|
||
### Вариант 1: Очистите кеш Netlify
|
||
|
||
1. Netlify UI → **Site settings** → **Build & deploy**
|
||
2. Нажмите **"Clear cache and retry deploy"**
|
||
|
||
### Вариант 2: Проверьте переменные окружения
|
||
|
||
В Netlify UI:
|
||
1. **Site settings** → **Environment variables**
|
||
2. Убедитесь что `NODE_VERSION` **НЕ** установлена вручную (или равна 18)
|
||
3. Если есть другое значение - удалите его (`.nvmrc` имеет приоритет)
|
||
|
||
### Вариант 3: Используйте Cloudflare Pages
|
||
|
||
Cloudflare Pages лучше работает с новыми версиями инструментов:
|
||
|
||
```
|
||
1. https://pages.cloudflare.com
|
||
2. Подключить GitHub репозиторий
|
||
3. Build command: npm run build
|
||
4. Build output: build
|
||
5. Environment variable: NODE_VERSION = 18
|
||
```
|
||
|
||
### Вариант 4: Используйте GitHub Pages
|
||
|
||
Уже настроено автоматически:
|
||
|
||
```
|
||
1. GitHub repo → Settings → Pages
|
||
2. Source: "GitHub Actions"
|
||
3. Workflow автоматически использует Node 18
|
||
```
|
||
|
||
---
|
||
|
||
## ✅ Контрольный список
|
||
|
||
- [x] Создан `.nvmrc` с версией 18
|
||
- [x] Добавлен `engines` в `package.json`
|
||
- [x] `vite.config.ts` обновлён (outDir: 'build')
|
||
- [x] Скрипты проверки обновлены
|
||
- [x] Документация обновлена
|
||
- [ ] **ВАШ ШАГ:** Закоммитьте изменения
|
||
- [ ] **ВАШ ШАГ:** Запушьте в GitHub
|
||
- [ ] **АВТОМАТИЧЕСКИ:** Netlify запустит деплой
|
||
- [ ] **ПРОВЕРЬТЕ:** Сайт задеплоен успешно
|
||
|
||
---
|
||
|
||
## 📖 Дополнительная документация
|
||
|
||
- **NODE-VERSION-FIX.md** - подробная информация о Node.js версиях
|
||
- **NETLIFY-FIX.md** - решение проблем с Netlify
|
||
- **DEPLOYMENT.md** - полная инструкция по деплою
|
||
- **DEPLOY-QUICK.md** - быстрая шпаргалка
|
||
|
||
---
|
||
|
||
## ✨ Ожидаемый результат
|
||
|
||
После коммита и пуша:
|
||
|
||
```
|
||
✓ Код запушен в GitHub
|
||
↓
|
||
✓ Netlify обнаружил изменения
|
||
↓
|
||
✓ Запущен build с Node.js 18
|
||
↓
|
||
✓ Vite создал папку build/
|
||
↓
|
||
✓ Netlify опубликовал build/
|
||
↓
|
||
✓ Сайт доступен: https://your-site.netlify.app
|
||
```
|
||
|
||
**Время деплоя:** ~2-3 минуты
|
||
|
||
Удачи! 🚀
|