209 lines
5.8 KiB
Markdown
209 lines
5.8 KiB
Markdown
# 🔧 Исправление проблем с версией Node.js
|
||
|
||
## Проблема
|
||
Netlify использует Node.js v22, которая может быть несовместима с некоторыми пакетами (Vite, Tailwind CSS v4, и др.).
|
||
|
||
## ✅ Решение (УЖЕ ПРИМЕНЕНО)
|
||
|
||
Версия Node.js зафиксирована на **18 LTS** следующими способами:
|
||
|
||
### 1. Файл .nvmrc
|
||
```
|
||
18
|
||
```
|
||
|
||
### 2. package.json
|
||
```json
|
||
{
|
||
"engines": {
|
||
"node": ">=18.0.0 <22.0.0",
|
||
"npm": ">=9.0.0"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 3. netlify.toml
|
||
```toml
|
||
[build.environment]
|
||
NODE_VERSION = "18"
|
||
```
|
||
|
||
### 4. vite.config.ts
|
||
Обновлён `outDir` на `build`:
|
||
```typescript
|
||
export default defineConfig({
|
||
build: {
|
||
outDir: 'build', // Изменено с 'dist' на 'build'
|
||
emptyOutDir: true,
|
||
sourcemap: false,
|
||
},
|
||
});
|
||
```
|
||
|
||
---
|
||
|
||
## 🚀 Что делать дальше
|
||
|
||
### Шаг 1: Закоммитьте изменения
|
||
```bash
|
||
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:
|
||
|
||
```bash
|
||
# Проверить версию
|
||
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. Проверьте локальную сборку
|
||
|
||
```bash
|
||
# Очистите всё
|
||
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)
|
||
```
|
||
|
||
---
|
||
|
||
## 📋 Проверочный лист
|
||
|
||
- [x] Создан `.nvmrc` с версией 18
|
||
- [x] Добавлен `engines` в `package.json`
|
||
- [x] `netlify.toml` указывает `NODE_VERSION = "18"`
|
||
- [x] `vite.config.ts` использует `outDir: 'build'`
|
||
- [x] `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
|
||
|
||
**Полезные ссылки:**
|
||
- 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
|
||
|
||
Удачи! 🚀
|