Solución: Build Failed en Netlify / Vercel (Exit Code 1)
¿Tu deploy falla con 'build failed exit code 1' en Netlify o Vercel? Causas reales y soluciones: case sensitivity, dependencias, Node.js y variables de entorno.
¿Por qué ocurre?
Tu proyecto compila en local pero falla en el servidor de deploy. Las causas más comunes: diferencias de case sensitivity entre Windows/Mac y Linux (Netlify/Vercel usan Linux), dependencias de desarrollo faltantes en producción, versión de Node.js diferente, variables de entorno no configuradas en el panel del proveedor, o archivos referenciados con mayúsculas/minúsculas incorrectas.
Solución paso a paso
Causa 1 — Case sensitivity en imports (la más común):
// ❌ En Windows funciona, en Linux NO (Netlify/Vercel usan Linux)
import Header from './components/header';
// El archivo se llama Header.tsx (con H mayúscula)// ✅ Respeta las mayúsculas/minúsculas exactas
import Header from './components/Header';
Para detectar estos errores en local:
# Activa case sensitivity en Git
git config core.ignorecase false
Causa 2 — Versión de Node.js diferente:
# netlify.toml
[build.environment]
NODE_VERSION = "22"
// package.json (para Vercel)
{
"engines": {
"node": ">=22"
}
}
O crea un archivo .nvmrc en la raíz:
22
Causa 3 — Variables de entorno no configuradas:
Tu .env local NO se sube a Netlify/Vercel. Configúralas manualmente:
- Netlify: Site settings → Environment variables - Vercel: Project settings → Environment Variables
Causa 4 — Dependencias de dev usadas en build:
// ❌ Si Netlify hace npm install --production, no instala devDependencies
{
"devDependencies": {
"typescript": "^5.5.0" // Necesario para el build pero está en dev
}
}// ✅ Mueve las deps necesarias para el build a dependencies
// O configura Netlify para instalar todo:
# netlify.toml
[build]
command = "npm ci && npm run build"
Causa 5 — Warnings tratados como errores:
# Next.js trata warnings de ESLint como errores en build
# Solución temporal:
CI='' npm run build# O en next.config.js:
module.exports = {
eslint: { ignoreDuringBuilds: true },
typescript: { ignoreBuildErrors: true } // ⚠️ Solo si sabes lo que haces
}
Paso final — Reproduce el error en local:
# Simula el build de producción exacto
rm -rf node_modules .next dist
npm ci
npm run build
# Si aquí falla, el error es de tu código, no del deploy
Cómo evitarlo en el futuro
Siempre haz un build local limpio (rm -rf node_modules && npm ci && npm run build) antes de hacer push. Configura la misma versión de Node.js en local y en el proveedor de deploy. Usa git config core.ignorecase false para detectar errores de case sensitivity. Configura todas las variables de entorno necesarias en el panel de Netlify/Vercel.
¿Quieres que una IA te ayude? Genera el prompt perfecto para tu error:
Generador de Prompts