javascript - react - Configuración ESLint de Prettier+Airbnb
prettier eslint vscode (4)
Aquí hay algunas maneras de hacerlo, en orden de recomendación. Preferiría el primer enfoque, ya que nunca tendrá que molestarse con otras reglas que podrían entrar en conflicto en el futuro.
i) Instale eslint-config-prettier
y .eslintrc
desde .eslintrc
. Al hacer esto, se desactivan algunas de las reglas relacionadas con el formato dentro de ESLint que podrían entrar en conflicto con Prettier:
{
"extends": [
"airbnb",
"prettier"
]
}
ii) Agregar "singleQuote": true
al archivo de configuración .prettierrc
:
{
"singleQuote": true,
...
}
iii) Agregar una opción de línea de comando --single-quote
cuando --single-quote
Prettier:
$ prettier --single-quote ...
iv) Desactive la regla de quotes
de ESLint dentro de su archivo de configuración .eslintrc
(y potencialmente otros que puedan entrar en conflicto):
{
"rules": {
"quotes": "off",
...
}
}
Recientemente, comencé a usar Visual Studio Code para mi editor y encontré el formateador Prettier - JavaScript. Creo que es un excelente complemento porque me ayuda a mantener mi código en buen estado.
Configuré la configuración ESLint de Airbnb y me parece que es muy útil.
Aquí está la trampa. La configuración de ESLint de Airbnb que estoy ejecutando actualmente no funciona bien con Prettier. Por ejemplo, para la cadena de JavaScript, Prettier está formateado para incluir marcas dobles y ESLint de Airbnb como marcas simples. Cuando formateo el código utilizando Prettier, entonces ESLint de Airbnb no está de acuerdo.
Sé que Kent Dodds ha hecho algunos trabajos con configuraciones de ESLint, entre otros, el ejemplo aquí.
Pero parece que no puedo encontrar una solución que me permita usar la magia de Prettier para formatear mi código para el ESLint de Airbnb.
Creo que eslint-config-prettier fue creado solo para este propósito: https://prettier.io/docs/en/eslint.html#turn-off-eslint-s-formatting-rules
Básicamente, desactiva todas las reglas que tienen que ver con el estilo de código, ya que de todas formas, la prettier
se encargará de hacerlo.
Así que solo instale este complemento junto con cualquier otro complemento de eslint deseado (como eslint-config-airbnb
) y en su configuración de eslint simplemente lo agrega al campo de extensiones. Por ejemplo:
{
"extends": ["airbnb", "prettier"]
}
Entonces, tiene su archivo .eslintrc, con la propiedad "extends": "airbnb"
Agregue otra propiedad, reglas y las reglas que escribirá allí sobrescribirán las heredadas de airbnb
"extends": "airbnb",
"rules": {
"eqeqeq": 2,
"comma-dangle": 1,
}
Ahora, aquí solo estoy sobrescribiendo dos reglas aleatorias, tendrás que buscar la que necesitas :)
¿O malinterpreté tu pregunta?
Una forma más limpia es :
yarn add --dev eslint-plugin-prettier eslint-config-prettier
// .eslintrc
{
"extends": ["airbnb", "plugin:prettier/recommended"]
}
El plugin:prettier/recommended
hace tres cosas :
- Habilita eslint-plugin-más bonita.
- Establece la regla más bonita / más bonita en "
- Amplía la configuración de eslint-config-prettier.
Y luego, si estás en reaccionar, podrías agregar prettier/react
también:
{
"extends": [
"airbnb",
"plugin:prettier/recommended",
"prettier/react"
]
}