5.8 KiB
5.8 KiB
🔧 Исправление проблем с версией Node.js
Проблема
Netlify использует Node.js v22, которая может быть несовместима с некоторыми пакетами (Vite, Tailwind CSS v4, и др.).
✅ Решение (УЖЕ ПРИМЕНЕНО)
Версия Node.js зафиксирована на 18 LTS следующими способами:
1. Файл .nvmrc
18
2. package.json
{
"engines": {
"node": ">=18.0.0 <22.0.0",
"npm": ">=9.0.0"
}
}
3. netlify.toml
[build.environment]
NODE_VERSION = "18"
4. vite.config.ts
Обновлён outDir на build:
export default defineConfig({
build: {
outDir: 'build', // Изменено с 'dist' на 'build'
emptyOutDir: true,
sourcemap: false,
},
});
🚀 Что делать дальше
Шаг 1: Закоммитьте изменения
git add .
git commit -m "Fix: Pin Node.js to v18 LTS and update build output to 'build'"
git push
Шаг 2: Netlify автоматически запустит деплой
После пуша Netlify:
- Использует Node.js v18 (из .nvmrc)
- Соберёт проект командой
npm run build - Найдёт папку
build(из vite.config.ts и netlify.toml) - Задеплоит сайт
🔍 Проверка локально
Убедитесь что у вас локально Node.js 18:
# Проверить версию
node -v
# Если используете nvm (рекомендуется)
nvm install 18
nvm use 18
# Проверить сборку
./check-build.sh # Linux/Mac
check-build.bat # Windows
📊 Почему Node.js 22 вызывает проблемы?
Node.js 22 - это очень новая версия (выпущена в апреле 2024), и многие популярные инструменты ещё не полностью протестированы с ней:
- Vite 5.x - стабильно работает на Node 18-20
- Tailwind CSS v4 - новая версия, оптимизирована для Node 18+
- PostCSS - лучшая совместимость на Node 18 LTS
- TypeScript - рекомендует Node 18 LTS
Node.js 18 LTS (Long Term Support):
- Поддержка до апреля 2025
- Максимальная стабильность
- Совместимость со всеми популярными инструментами
🆘 Если проблема сохраняется
1. Проверьте полные логи Netlify
В Netlify UI зайдите в:
- Deploys → Выберите последний деплой
- Нажмите на Deploy log
- Найдите строки после "Finished restoring cached build plugins"
2. Очистите кеш Netlify
В настройках Netlify:
- Site settings → Build & deploy → Build settings
- Нажмите Clear cache and retry deploy
3. Проверьте локальную сборку
# Очистите всё
rm -rf node_modules dist build package-lock.json
# Переустановите зависимости
npm install
# Соберите
npm run build
# Проверьте результат
ls -la build/
Если локально собирается без ошибок, но на Netlify нет - проблема в среде Netlify.
4. Альтернативные платформы
Если Netlify продолжает давать ошибки, используйте:
Cloudflare Pages (рекомендуется)
1. https://pages.cloudflare.com
2. Build: npm run build
3. Output: build
4. Node version: 18
GitHub Pages
Settings → Pages → Source: "GitHub Actions"
(Workflow уже настроен в .github/workflows/deploy.yml)
📋 Проверочный лист
- Создан
.nvmrcс версией 18 - Добавлен
enginesвpackage.json netlify.tomlуказываетNODE_VERSION = "18"vite.config.tsиспользуетoutDir: 'build'netlify.tomlуказываетpublish = "build"- Закоммичены все изменения
- Запушен код в GitHub
- Netlify запустил новый деплой
- Деплой успешен
✅ Ожидаемый результат
После исправлений в логах Netlify должно быть:
v18.x.x is already installed.
Now using node v18.x.x (npm v9.x.x)
...
npm run build
...
vite v5.x.x building for production...
transforming...
✓ 1234 modules transformed.
rendering chunks...
build/assets/index-xxxxx.js 244.81 kB │ gzip: 69.31 kB
✓ built in 1.93s
Deploy site
────────────────────────────────────────
✓ Finished hashing 15 files
✓ CDN requesting 15 files
✓ Finished uploading 15 assets
✓ Deploy is live!
Website URL: https://your-site.netlify.app
📞 Дополнительная помощь
Если после всех исправлений деплой всё ещё падает:
- Скопируйте полный лог от "Build ready to start" до конца
- Найдите строку с ошибкой (обычно красным цветом)
- Поищите эту ошибку в интернете или создайте issue
Полезные ссылки:
- Netlify Node.js docs: https://docs.netlify.com/configure-builds/manage-dependencies/#node-js-and-javascript
- Vite troubleshooting: https://vitejs.dev/guide/troubleshooting.html
- Node.js LTS releases: https://nodejs.org/en/about/previous-releases
Удачи! 🚀