Volver a los apuntes

Instalar y configurar Prettier y Eslint

Prettier es una herramienta de formateo de código y Eslint es un analizador de sintaxis de JavaScript.

Instalación de Prettier

Para javascript
npm install --save-dev prettier
Para typescript
npm install --save-dev prettier @typescript-eslint/parser
Integra Prettier en Vite
npm install vite-plugin-prettier --save-dev

Creación de archivo .prettierrc.json

El archivo de configuración .prettierrc.json es donde se especifican las reglas que Prettier debe seguir para formatear el código. Aquí tienes el contenido que mencionas:

.prettierrc.json
{
  "printWidth": 80,
  "tabWidth": 2,
  "useTabs": false,
  "semi": true,
  "singleQuote": true,
  "trailingComma": "es5",
  "bracketSpacing": true,
  "jsxBracketSameLine": true,
  "arrowParens": "always",
  "proseWrap": "preserve",
  "parser": "@typescript-eslint/parser"
}
  • printWidth: Establece el número máximo de caracteres por línea antes de que Prettier se divida automáticamente. En este caso, se limita a 80 caracteres.
  • tabWidth: Define el número de espacios que se usará para un tabulador. En este caso, son 2 espacios.
  • useTabs: Define si se deben usar tabs en lugar de espacios. En este caso, se utiliza espacios.
  • semi: Define si se deben agregar puntos y comas al final de las sentencias. En este caso, se agrega un punto y coma.
  • singleQuote: Define si se deben usar comillas simples o dobles. En este caso, se usa dobles.
  • trailingComma: Define si se deben agregar comas al final de las propiedades. En este caso, se agrega una coma al final de las propiedades.
  • bracketSpacing: Si se establece en true, Prettier agregará un espacio entre las llaves de los objetos. Ejemplo
  • jsxBracketSameLine: Si se establece en true, Prettier colocará el cierre de la etiqueta > en la misma línea que el último atributo en JSX (como en las etiquetas auto-cerradas).
  • arrowParens: Controla si Prettier debe poner paréntesis alrededor de los parámetros de las funciones flecha. Con 'always', siempre se usarán paréntesis, incluso si solo hay un parámetro.
  • proseWrap: Controla el ajuste de línea de los textos en Markdown. 'preserve' mantiene el comportamiento original sin forzar un ajuste automático.
  • parser: Especifica el parser que Prettier debe usar para analizar los archivos. En este caso, se ha configurado para usar el parser de TypeScript (@typescript-eslint/parser) para que Prettier entienda y formatee correctamente el código TypeScript.

Configuración de vite.config.ts

vite.config.ts
// ...
import PrettierPlugin from 'vite-plugin-prettier';

export default defineConfig({
  // ... otras configuraciones ...
  plugins: [
    react(),
    PrettierPlugin(),
  ],
});

Configurar tsconfig.json

tsconfig.json
{
  // ...
  "compilerOptions": {
    "allowSyntheticDefaultImports": true,
    "forceConsistentCasingInFileNames": true,
    "strict": true,
    "target": "es6",
    "module": "commonjs",
    "sourceMap": true,
    "outDir": "build",
    "rootDir": "src"
  }
}
  • target: Especifica que el código TypeScript se transpile a ECMAScript 6 (ES6). Esto asegura que se utilicen características modernas de JavaScript como let, const, clases, etc.
  • module: Indica que el sistema de módulos que se usará es CommonJS. Esto es común en entornos deNode.js.
  • sourceMap: Genera archivos de mapa de origen (.map), lo que facilita el depurado del código en el navegador.
  • outDir: Especifica la carpeta donde se guardarán los archivos generados después de la compilación.
  • rootDir: Especifica que la carpeta de origen de los archivos TypeScript es src.
  • forceConsistentCasingInFileNames: Asegura que los nombres de los archivos sean consistentes, evitando problemas por el uso inconsistente de mayúsculas y minúsculas.
  • strict: Activa las verificaciones estrictas de TypeScript, lo que implica un control más riguroso de los tipos, lo que mejora la calidad y seguridad del código.
  • allowSyntheticDefaultImports: Permite importar módulos que no tengan una exportación default como si la tuvieran. Esto facilita la compatibilidad entre diferentes tipos de módulos.

Instalación de Eslint

Para javascript
npm install eslint --save-dev
Para typescript
npm install @typescript-eslint/parser --save-dev
npm install @typescript-eslint/eslint-plugin --save-dev

Configuración de .eslintrc.json

Crea un archivo .eslintrc.json en la raíz de tu proyecto con el siguiente contenido:

.eslintrc.json
{
  "parser": "@typescript-eslint/parser",
  "plugins": ["@typescript-eslint"],
  "extends": ["plugin:@typescript-eslint/recommended"],
  "rules": {
    // Aquí puedes agregar reglas personalizadas
  }
}