Configuración de Prettier
Instala y configura Prettier para un formateo de código consistente en tu proyecto React y Next.js.
Busca en todas las páginas de la documentación
Instala y configura Prettier para un formateo de código consistente en tu proyecto React y Next.js.
🤖 Read the SystemsArchitect.io Blog for over 100+ cloud architecture articles 🔥
Tarjeta de receta de referencia rápida - lista para copiar y pegar.
# Instala Prettier
npm install --save-dev prettier
# Comprueba el formateo (compatible con CI, sale con error en violaciones)
npx prettier --check .
# Formatea todos los archivos
npx prettier --write .
# Formatea archivos específicos
npx prettier --write "src/**/*.{ts,tsx,css,json}"Cuándo usarlo: Cada proyecto con más de un colaborador, o cualquier proyecto donde quieras dejar de debatir el estilo de código.
// .prettierrc
{
"semi": true,
"singleQuote": false,
"tabWidth": 2,
"trailingComma": "all",
"printWidth": 80,
"bracketSpacing": true,
"arrowParens": "always",
"endOfLine": "lf",
"plugins": ["prettier-plugin-tailwindcss"]
}# .prettierignore
node_modules/
.next/
out/
coverage/
pnpm-lock.yaml
package-lock.json
*.min.js// scripts de package.json
{
"scripts": {
"format": "prettier --write .",
"format:check": "prettier --check ."
}
}// .vscode/settings.json (formateo al guardar)
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}Lo que esto demuestra:
.prettierrc con configuración recomendada para proyectos React/Next.js.prettierignore para omitir la salida de compilación y archivos de bloqueo.prettierrc controla las opciones; la mayoría de los equipos solo cambian algunos valores predeterminados--check sale con un código distinto de cero cuando los archivos no están formateados (usar en CI)--write formatea archivos en su lugarOpciones clave explicadas:
| Opción | Por Defecto | Recomendado | Lo Que Hace |
|---|---|---|---|
semi | true | true | Agrega puntos y comas al final de las declaraciones |
singleQuote | false | false o true | Usa comillas simples en lugar de dobles |
tabWidth | 2 | 2 | Número de espacios por nivel de indentación |
trailingComma | "all" | "all" | Agrega comas finales en todas partes válidas |
printWidth | 80 | 80 | Longitud de línea antes de ajuste |
bracketSpacing | true | true | Espacios en literales de objeto { foo } |
arrowParens | "always" | "always" | Paréntesis alrededor de parámetros de funciones flecha simples |
endOfLine | "lf" | "lf" | Estilo de terminación de línea |
Clasificación de clases Tailwind CSS:
npm install --save-dev prettier-plugin-tailwindcss{
"plugins": ["prettier-plugin-tailwindcss"]
}Este plugin ordena automáticamente las clases de Tailwind en el orden recomendado.
Formatos de archivo de configuración admitidos:
.prettierrc (JSON).prettierrc.json.prettierrc.js o .prettierrc.cjs.prettierrc.mjsprettier.config.js"prettier" en package.json// Prettier maneja el formateo de TypeScript fuera de la caja.
// No se requiere analizador adicional ni plugin para archivos .ts y .tsx.
// Formatea anotaciones de tipo, genéricos, interfaces y
// uniones de tipo consistentemente:
type Props = {
name: string;
age: number;
onSubmit: (data: FormData) => void;
};Cosas que te morderán. Cada trampa incluye qué sale mal, por qué sucede y la solución.
Conflictos con ESLint - Prettier y ESLint quieren controlar el formateo. Ejecutar ambos sin coordinación produce un bucle de corrección infinita. Solución: Usa eslint-config-prettier para desactivar las reglas de formateo de ESLint. Ver Integración de ESLint + Prettier.
printWidth no es un límite estricto - Prettier trata printWidth como una guía, no como un máximo. Las cadenas largas, las importaciones y los props JSX pueden excederla. Solución: Acepta este comportamiento; Prettier optimiza para legibilidad, no para límites de columna estrictos.
Formateo al guardar no funciona - VS Code puede estar usando un formateador predeterminado diferente. Solución: Establece "editor.defaultFormatter": "esbenp.prettier-vscode" y asegúrate de que la extensión esté instalada.
.prettierignore es requerido - Sin él, Prettier formatea la salida de compilación, archivos de bloqueo y código generado. Solución: Siempre crea un archivo .prettierignore, o Prettier perderá tiempo en archivos que no te importan.
El orden de carga del plugin importa - Si usas múltiples plugins de Prettier, pueden entrar en conflicto. Solución: prettier-plugin-tailwindcss siempre debe estar al final en el array plugins.
Otras formas de resolver el mismo problema - y cuándo cada una es la mejor opción.
| Alternativa | Úsalo Cuando | No Lo Uses Cuando |
|---|---|---|
| Biome | Quieres una única herramienta para linting y formateo | Necesitas plugins de Prettier (p. ej., clasificación de Tailwind) |
dprint | Quieres un formateador rápido basado en Rust con más opciones de configuración | Quieres formateo opinionado con cero configuración |
| Formateo solo del editor | Proyecto solo con un editor | Proyecto en equipo o se necesita cumplimiento en CI |
--check sale con un código distinto de cero si algún archivo no está formateado (usar en CI).--write formatea archivos en su lugar (usar localmente).--write en CI; modificaría archivos sin confirmarlos..next/), archivos de bloqueo y código generado..prettierignore para omitir archivos que no te importan.printWidth es una guía, no un máximo estricto.{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}Establece el formateador predeterminado tanto globalmente como por lenguaje.
.prettierrc (JSON).prettierrc.json, .prettierrc.js, .prettierrc.cjs, .prettierrc.mjsprettier.config.js"prettier" en package.jsonnpm install --save-dev prettier-plugin-tailwindcss{ "plugins": ["prettier-plugin-tailwindcss"] }Este plugin debe estar al final en el array plugins.
"editor.defaultFormatter": "esbenp.prettier-vscode" explícitamente por lenguaje..ts y .tsx.{
"semi": true,
"singleQuote": false,
"tabWidth": 2,
"trailingComma": "all",
"printWidth": 80,
"endOfLine": "lf"
}npx prettier --write "src/**/*.{ts,tsx,css,json}"Usa patrones glob para dirigirse a extensiones específicas.
eslint-config-prettier para desactivar las reglas de formateo de ESLint.prettier-plugin-organize-imports o @ianvs/prettier-plugin-sort-imports para ordenar importaciones.import/order de ESLint.Revisado por Chris St. John·Última actualización: 16 jul 2026
🤖 Read the SystemsArchitect.io Blog for over 100+ cloud architecture articles 🔥