Files
softclick-landing/scripts/docs/NODE-VERSION-FIX.md
2026-04-02 23:35:06 +03:00

5.8 KiB
Raw Blame History

🔧 Исправление проблем с версией 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:

  1. Site settings → Build & deploy → Build settings
  2. Нажмите 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

📞 Дополнительная помощь

Если после всех исправлений деплой всё ещё падает:

  1. Скопируйте полный лог от "Build ready to start" до конца
  2. Найдите строку с ошибкой (обычно красным цветом)
  3. Поищите эту ошибку в интернете или создайте issue

Полезные ссылки:

Удачи! 🚀