6.4 KiB
6.4 KiB
🔧 Последние исправления (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:
{
"engines": {
"node": ">=18.0.0 <22.0.0",
"npm": ">=9.0.0"
}
}
Уже был в netlify.toml:
[build.environment]
NODE_VERSION = "18"
2. Исправлен output директорий в vite.config.ts
Было:
build: {
outDir: 'dist',
}
Стало:
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. Закоммитьте все изменения
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:
- Прочитает
.nvmrc→ использует Node.js 18 - Установит зависимости с
npm install - Запустит
npm run build→ Vite создаст папкуbuild - Опубликует содержимое
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:
# Проверить версию 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
- Netlify UI → Site settings → Build & deploy
- Нажмите "Clear cache and retry deploy"
Вариант 2: Проверьте переменные окружения
В Netlify UI:
- Site settings → Environment variables
- Убедитесь что
NODE_VERSIONНЕ установлена вручную (или равна 18) - Если есть другое значение - удалите его (
.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
✅ Контрольный список
- Создан
.nvmrcс версией 18 - Добавлен
enginesвpackage.json vite.config.tsобновлён (outDir: 'build')- Скрипты проверки обновлены
- Документация обновлена
- ВАШ ШАГ: Закоммитьте изменения
- ВАШ ШАГ: Запушьте в 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 минуты
Удачи! 🚀