No entiendo por qué tenemos complementos y extensiones. ¿Cuál es la diferencia entre ellos y necesito uno u otro?
extends usa un archivo de configuración que aplica un conjunto de reglas cuando agrega eso a las opciones de extensión. Un complemento, por otro lado, le proporciona un conjunto de reglas que puede aplicar individualmente según sus necesidades. El simple hecho de tener un complemento no impone ninguna regla. Tienes que elegir qué reglas necesitas. Un complemento puede proporcionarle cero, uno o más archivos de configuración. Si el complemento proporciona un archivo de configuración, puede cargarlo en su sección de extensiones después de agregar el complemento en la sección de complementos.
Entonces, esencialmente, los complementos te dan algunas reglas que han sido codificadas y puedes elegir cuáles son relevantes. También puede proporcionar archivos de configuración para aplicar reglas que los autores creen que están lógicamente agrupadas/relevantes, pero proporcionar un archivo de configuración no es obligatorio para un complemento. extends, por otro lado, le brinda la capacidad de aplicar reglas de forma masiva en función de las especificaciones del archivo de configuración.
"plugins": [ "react" ], "extends": [ "eslint:recommended", "plugin:react/recommended" ] "extends": [ "google" ]Buena suerte...
Además de la buena respuesta de shmit:
extendsse trata de ampliar las configuraciones en general, no solo los complementos. Los valores potenciales son:
"eslint:recommended""eslint:all"eslint-config-xxx o nombre de alcance)eslint-plugin-xxx o nombre de alcance)"./my/path/.eslintrc.js" Notación del complemento: plugin:<package name>/<configuration name> , por ejemplo, para eslint-plugin-react :
"extends": ["plugin:react/recommended"]Al ampliar la configuración de un complemento, podemos obtener reglas recomendadas sin agregarlas manualmente.
plugins Un complemento es un paquete especial de eslint npm, que proporciona definiciones de reglas adicionales ( rules ), environments , processors y configs para diferentes configuraciones de valores de reglas recomendados/predeterminados.
La propiedad de plugins en .eslintrc.js es simplemente un indicador para habilitar un complemento determinado después de la instalación con npm i . Ahora podemos referirnos a las reglas del complemento, pero tenemos que configurar todos los valores de las rules manualmente.
Piense en los plugins como una forma de activar un complemento: para usar sus reglas, debe agregar el complemento una vez en la cadena en todos los casos.
plugins no son necesarios en su propia configuración, si ya están definidos en una configuración, desde la que extiende por extends .
Ejemplo:
eslint-plugin-react ya contiene plugins: [ 'react' ] , por lo tanto, esta entrada ya no es necesaria en la configuración propia y las reglas del complemento se pueden usar directamente.
Entonces, descubrí que los complementos agregan capacidades adicionales y las extensiones le brindan una línea de base sobre la cual agregar sus propias reglas personalizadas. ¡Gracias a mi amigo Oliver por ayudarme a responder esta pregunta!