Ich verstehe nicht, warum wir Plugins und Erweiterungen haben. Was ist der Unterschied zwischen ihnen und brauche ich das eine oder das andere?
Was ist der Unterschied zwischen Plugins und Erweiterungen in eslint?
schmit
extensions verwendet eine Konfigurationsdatei, die eine Reihe von Regeln anwendet, wenn Sie diese zu den Erweiterungsoptionen hinzufügen. Ein Plugin hingegen stellt Ihnen ein Regelwerk zur Verfügung, das Sie je nach Bedarf individuell anwenden können. Nur ein Plugin zu haben erzwingt keine Regel. Sie müssen auswählen, welche Regeln Sie benötigen. Ein Plugin kann Ihnen null, eine oder mehrere Konfigurationsdateien zur Verfügung stellen. Wenn das Plugin eine Konfigurationsdatei bereitstellt, können Sie diese in Ihren erweiterten Abschnitt laden, nachdem Sie das Plugin im Plugins-Abschnitt hinzugefügt haben.
Im Wesentlichen geben Ihnen Plugins einige Regeln, die codiert wurden, und Sie können auswählen, welche relevant sind. Es kann auch Konfigurationsdateien bereitstellen, um Regeln anzuwenden, die die Autoren für logisch gruppiert/relevant halten, aber die Bereitstellung einer Konfigurationsdatei ist für ein Plugin nicht zwingend erforderlich. Extends hingegen bietet Ihnen die Möglichkeit, Regeln basierend auf den Spezifikationen der Konfigurationsdatei in großen Mengen anzuwenden.
Beispiel-Plugin – eslint-plugin-reagieren:
"plugins": [
"react"
],
"extends": [
"eslint:recommended",
"plugin:react/recommended"
]
Beispielkonfiguration – eslint-config-google:
"extends": [
"google"
]
Viel Glück…
-
Wenn ich eine Konfiguration erweitere und sie eine Regel hat, wird sie automatisch in meiner Konfiguration aktiviert. Wenn ich ein Plugin verwende, müsste ich explizit ein Regel-b innerhalb dieses Plugins in meinem Regelabschnitt aktivieren.
– gaurav5430
26. Februar 2019 um 17:39 Uhr
-
Beachten Sie, dass Sie dies tun müssen, wenn Sie ein Plugin verwenden, das auch eine Konfiguration bereitstellt
extends
es ausdrücklich, wenn Sie es auch verwenden möchten.– QWERTZ
28. Februar 2020 um 15:22 Uhr
-
“nach dem Hinzufügen des Plugins im Plugin-Bereich.” – Bist du dir sicher? Ich habe gerade verwendet
extends: ['plugin:react/recommended']
ohne es hinzuzufügenplugins: []
Sektion.– Alexander Kim
30. April 2020 um 16:18 Uhr
-
Meiner Meinung nach beantwortet dies die Frage nicht vollständig, weshalb es zu diesem Thema eine Folgefrage gibt: stackoverflow.com/questions/61528185/…
– wedi
8. Dezember 2020 um 10:30 Uhr
ford04
Zusätzlich zu Shmits guter Antwort:
extends
handelt von verlängern Konfigurationen im Allgemeinen nicht nur Plugins. Mögliche Werte sind:
"eslint:recommended"
"eslint:all"
- Gemeinsam nutzbare Konfiguration aus dem npm-Paket (
eslint-config-xxx
oder Bereichsname) - Plugin-Konfiguration aus dem npm-Paket (
eslint-plugin-xxx
oder Bereichsname) - Eine andere Konfigurationsdatei, wie z
"./my/path/.eslintrc.js"
Plugin-Notation: plugin:<package name>/<configuration name>
zB für eslint-plugin-react
:
"extends": ["plugin:react/recommended"]
Durch die Erweiterung einer Plugin-Konfiguration können wir empfohlene Regeln erhalten, ohne sie manuell hinzuzufügen.
plugins
EIN Plugin ist ein spezielles eslint-npm-Paket, das zusätzliche Regeldefinitionen bereitstellt (rules
), environments
, processors
und configs
für verschiedene Konfigurationen von empfohlenen / Standardregelwerten.
Das plugins
Eigentum in .eslintrc.js
ist lediglich ein Flag, um ein bestimmtes Plugin nach der Installation zu aktivieren npm i
. Wir können jetzt auf die Regeln des Plugins verweisen, müssen aber alle setzen rules
Werte manuell.
Denk an plugins
B. um ein Plugin zu aktivieren – um seine Regeln zu verwenden, müssen Sie das Plugin in jedem Fall einmal in der Kette hinzufügen.
plugins
ist nicht in der eigenen config benötigt, wenn es bereits in einer Konfiguration definiert ist, von der aus man erweitert extends
.
Beispiel:
eslint-plugin-react
enthält bereits plugins: [ 'react' ]
daher wird dieser Eintrag in der eigenen Config nicht mehr benötigt und Plugin-Regeln können direkt verwendet werden.
-
Um klar zu sein, wenn Sie verwenden
extends
Eigentum, das Sie nicht verwenden müssenplugins
Eigentum. Aber wenn Sie benutzerdefinierte Regeln festlegen möchten, sollten Sie verwendenplugins
Eigentum. Ist es richtig?– Ramazan Chasygov
4. August 2020 um 10:51 Uhr
-
Um Regeln von einem bestimmten Plugin zu verwenden, müssen Sie dieses Plugin unter erwähnen
plugins
in jedem Fall (denke anplugins
als Weg zu aktivieren Sie ein Plugin). Obwohl du es nicht brauchstplugins
in deiner eigenen config, wenn es bereits in einer Konfiguration definiert ist, von der du aus erweiterstextends
. Siehe dieeslint-plugin-react
Plugin-Beispiel oben, das bereits enthältplugins: [ 'react' ],
.– ford04
4. August 2020 um 11:06 Uhr
-
Wenn ich
npm install eslint-plugin-react
und möchte seine Konfiguration in meiner eigenen verwendeneslintrc.js
muss ich zuerst definierenplugins: [ 'react' ]
um dannextends: [ 'plugin:react/recommended' ]
– also benötige ich das Plugin, das in meiner eigenen Konfiguration angegeben ist. Hast du einen konkreteren Fall beschrieben: wenn ich ein anderes Plugin erweitere, das es selbst nutzteslint-plugin-react
– dh:eslint-plugin-using-react
ich müsste das React-Plugin auch nicht in meiner eigenen Konfiguration aktivieren, da ich es bereits habeplugins: [ plugin-using-react]
undextends: [plugin:using-react/recommended]
in meiner Konfig?– Tonwood
11. Juni 2021 um 16:13 Uhr
-
eslint-plugin-react
funktioniert gut für mich, ohne es in einschließen zu müssenplugins
. Ich füge nur hinzuextends: [ 'plugin:react/recommended' ]
, das ist es. Wenn ich eine Regel überschreiben möchte, verwende ich dannrules: { 'react/react-in-jsx-scope': 'off' }
also ich versteh echt nicht warumplugins
wird sogar benötigt.– Kathal Mac Donnacha
16. Mai um 12:09 Uhr
So haben Sie herausgefunden, dass Plugins zusätzliche Funktionen hinzufügen und Erweiterungen Ihnen eine Basis bieten, auf der Sie Ihre eigenen benutzerdefinierten Regeln hinzufügen können. Danke an meinen Freund Oliver, der mir geholfen hat, diese Frage zu beantworten!