Nachgestelltes Komma nach der letzten Zeile im Objekt
Lesezeit: 4 Minuten
SiiilverSurfer
Ich verwende Prettier in VS Code. Mir ist aufgefallen, dass Prettier bei Verwendung des Formats beim Speichern jedes Mal nachgestellte Kommas in die letzte Zeile eines Objekts einfügt.
Nehmen wir zum Beispiel an, ich hätte ein JS-Objekt wie dieses:
obj = {
hello: 'hello',
world: 'world'
}
Prettier macht daraus Folgendes:
obj = {
hello: 'hello',
world: 'world',
}
Beachten Sie das zusätzliche Komma danach 'world'
Ich habe in den Einstellungen keine Option gefunden, um dieses Problem zu beheben.
Für mich ist das Verhalten von Prettier entgegengesetzt, es entfernt nachgestellte Kommas.
– Shub
22. April 2020 um 16:55 Uhr
Du kannst es versuchen "trailingComma": "all" dann oder prüfen Sie, ob Sie auch eslint sind. Das könnte eine Einstellung außer Kraft setzen.
– Zuckerberg
22. April 2020 um 16:56 Uhr
Sie können aktualisieren .prettierrc.json und Option festlegen trailingComma Zu none wie:
{
"trailingComma" : "none",
...
}
gschenk
Nachgestellte Kommas sind eine Konvention im Codestil, die eingeführt wurde, um falsche Unterschiede in der Versionskontrolle (z. B. Git) zu vermeiden.
Stellen Sie sich vor, Sie haben versionierten Code und müssen ihn ändern. Wenn Sie Ihrem Objekt eine neue Zeile ohne das abschließende Komma hinzufügen, müssen Sie die ursprüngliche letzte Zeile durch Hinzufügen eines Kommas ändern. In der Versionskontrolle wird dies dann als zwei geänderte Zeilen angezeigt. Der Codeprüfer oder ein zukünftiger Entwickler muss prüfen, ob Sie die letzte Zeile tatsächlich geändert oder nur das Komma hinzugefügt haben.
Zuckerbergs Antwort zeigt Ihnen, wie Sie es ändern können. Es ist jedoch besser, Ihren Stil zu ändern, als sich zu ändern hübscher‘s Stil.
Lösung: Wenden Sie die Änderung auf Ihre gesamte Codebasis an, schreiben Sie sie fest und fügen Sie das Commit hinzu .git-blame-ignore-revs es taucht also nicht als Schuld auf – siehe z. B akrabat.com/ignoring-revisions-with-git-blame
– Gimboland
1. Juni 2021 um 15:13
Aber der Commit, der ein neues Element hinzufügt, sollte nicht ignoriert werden!
– Merwok
12. März um 19:22
Das ist ein toller Punkt. Ich bin der festen Überzeugung, dass das letzte Element im Änderungsverlauf enthalten sein sollte, wenn die Änderung nichts damit zu tun hat. Sehr zu empfehlen trailingComma: "es5" ( Die Standardeinstellung wurde von geändert none Zu es5 aus v2.0.0 )
– Anjan Talatam
15. April um 2:58
David Federspiel
Nachfolgende Kommas sind bereits ein Standard, da sie zu einem saubereren Commit-Verlauf führen. Wenn Sie später eine Eigenschaft hinzufügen müssen, zeigt Git eine einzelne geänderte Zeile anstelle einer neuen Zeile UND das neue Komma in der vorherigen Zeile an.
Um die Einstellung zu ändern VSCode:
Gehen Sie zu DATEI -> EINSTELLUNGEN -> EINSTELLUNGEN. (VS-Code-Menüs)
Das Einstellungsfenster sollte sich öffnen. Oben (oben) gibt es eine Suche. Typ „Hübscher“
Sie sollten die verfügbaren Prettier-Einstellungen sehen. Sie können sie ändern
Könnten Sie eine Quelle oder einen Artikel zum Thema „nachgestelltes Komma – modernes js“ hinzufügen?
– Yevhenii Herasymchuk
21. Okt. 2020 um 10:31 Uhr
@YevheniiHerasymchuk Es ist nicht nur JS. Es ist zum Beispiel auch PHP. Nachgestellte Kommas vermeiden Konflikte, wenn zwei Personen Elemente zu einem Array/Objekt hinzufügen und diese dann mit Git zusammenführen möchten. Mit einem abschließenden Komma erhalten Sie statt einer geänderten Zeile + eingefügter Zeile nur eine eingefügte Zeile, die keine Konflikte erzeugt.
– Mārtiņš Briedis
27. April 2022 um 9:23 Uhr
Roma N
In meinem Fall reichte die obige Konfiguration nicht aus:
{
"trailingComma" : "none",
}
Damit dies bei mir funktionierte, musste ich zusätzlich zu dieser Einstellung auch die Einstellung entfernen Einstellung.json:
Und mit der bereits installierten Erweiterung Prettier Geben Sie als Nächstes den Befehl ein ctrl + shift + P In vscode
Klicke auf Configure...
Wählen Prettier - Code formatter
Jetzt das:
const a = {
a: 10,
b: 15,
};
wird daraus:
const a = {
a: 10,
b: 15
}
Könnten Sie eine Quelle oder einen Artikel zum Thema „nachgestelltes Komma – modernes js“ hinzufügen?
– Yevhenii Herasymchuk
21. Okt. 2020 um 10:31 Uhr
@YevheniiHerasymchuk Es ist nicht nur JS. Es ist zum Beispiel auch PHP. Nachgestellte Kommas vermeiden Konflikte, wenn zwei Personen Elemente zu einem Array/Objekt hinzufügen und diese dann mit Git zusammenführen möchten. Mit einem abschließenden Komma erhalten Sie statt einer geänderten Zeile + eingefügter Zeile nur eine eingefügte Zeile, die keine Konflikte erzeugt.
– Mārtiņš Briedis
27. April 2022 um 9:23 Uhr
Niccolò Mineo
Falls sich jemand fragt, wie man VSCodes bekommt prettier Erweiterung verhält sich wie pre-commit‘S prettier Hook, das hat bei mir funktioniert:
"prettier.trailingComma": "all"
Das oben Genannte sollte in Kombination mit verwendet werden prettier als diedefaultFormatter für die relevanten Dateien, wie von anderen vorgeschlagen.
Wenn das allein nicht ausreicht und Sie auch verwenden EditorConfig Für andere Anpassungen müssen Sie möglicherweise auch Folgendes hinzufügen:
"prettier.useEditorConfig": false
14525700cookie-checkNachgestelltes Komma nach der letzten Zeile im Objektyes
Ich habe keine Ahnung von Prettier, aber hängt das nicht damit zusammen? prettier.io/docs/en/options.html#trailing-commas
– ASDFGerte
22. April 2020 um 16:53 Uhr
Für mich ist das Verhalten von Prettier entgegengesetzt, es entfernt nachgestellte Kommas.
– Shub
22. April 2020 um 16:55 Uhr
Du kannst es versuchen
"trailingComma": "all"
dann oder prüfen Sie, ob Sie auch eslint sind. Das könnte eine Einstellung außer Kraft setzen.– Zuckerberg
22. April 2020 um 16:56 Uhr