Was ist der Unterschied zwischen Plugins und Erweiterungen in eslint?

Lesezeit: 4 Minuten

Ich verstehe nicht, warum wir Plugins und Erweiterungen haben. Was ist der Unterschied zwischen ihnen und brauche ich das eine oder das andere?

Benutzer-Avatar
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ügen plugins: [] 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

Benutzer-Avatar
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üssen plugins Eigentum. Aber wenn Sie benutzerdefinierte Regeln festlegen möchten, sollten Sie verwenden plugins 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 an plugins als Weg zu aktivieren Sie ein Plugin). Obwohl du es nicht brauchst plugins in deiner eigenen config, wenn es bereits in einer Konfiguration definiert ist, von der du aus erweiterst extends. Siehe die eslint-plugin-react Plugin-Beispiel oben, das bereits enthält plugins: [ 'react' ],.

    – ford04

    4. August 2020 um 11:06 Uhr


  • Wenn ich npm install eslint-plugin-react und möchte seine Konfiguration in meiner eigenen verwenden eslintrc.jsmuss ich zuerst definieren plugins: [ 'react' ] um dann extends: [ '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 nutzt eslint-plugin-react – dh: eslint-plugin-using-reactich müsste das React-Plugin auch nicht in meiner eigenen Konfiguration aktivieren, da ich es bereits habe plugins: [ plugin-using-react] und extends: [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üssen plugins. Ich füge nur hinzu extends: [ 'plugin:react/recommended' ], das ist es. Wenn ich eine Regel überschreiben möchte, verwende ich dann rules: { 'react/react-in-jsx-scope': 'off' } also ich versteh echt nicht warum plugins 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!

1186980cookie-checkWas ist der Unterschied zwischen Plugins und Erweiterungen in eslint?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy