Es wurde erwartet, dass Zeilenumbrüche "LF" sind, es wurde jedoch ein Zeilenumbruch im CRLF-Stil gefunden


155

Bei der Verwendung von eslint im gulp-Projekt ist ein Problem mit einem solchen Fehler aufgetreten.
Expected linebreaks to be 'LF' but found 'CRLF' linebreak-styleIch verwende die Windows-Umgebung für das Ausführen von gulp. Das gesamte Fehlerprotokoll ist unten angegeben

 Kiran (master *) Lesson 4 $ gulp
 Using gulpfile c:\Users\Sai\Desktop\web-build-tools\4\
 gulpfile.js
 Starting 'styles'...
 Finished 'styles' after 17 ms
 Starting 'lint'...
 'lint' errored after 1.14 s
 ESLintError in plugin 'gulp-eslint'
 sage: Expected linebreaks to be 'LF' but found 'CRLF'.
 ails: fileName: c:\Users\Sai\Desktop\web-build-tools\4\js\extra.js



$>Users\Sai\Desktop\web-build-tools\4\js\extra.js
error  Expected linebreaks to be 'LF' but found 'CRLF'  linebreak-style

Ich habe auch die Datei extra.js als Fehler hinzugefügt , der auf einen möglichen Fehler hinweist.

function getWindowHeight() {
    return window.innerHeight;
}

getWindowHeight();

Antworten:


201

Überprüfen Sie, ob Sie die linebreak-styleRegel entweder in Ihrer .eslintrc oder im Quellcode wie folgt konfiguriert haben :

/*eslint linebreak-style: ["error", "unix"]*/

Da Sie unter Windows arbeiten, möchten Sie möglicherweise stattdessen diese Regel verwenden:

/*eslint linebreak-style: ["error", "windows"]*/

Siehe die Dokumentation von linebreak-style:

Bei der Entwicklung mit vielen Personen, die alle unterschiedliche Editoren, VCS-Anwendungen und Betriebssysteme haben, kann es vorkommen, dass unterschiedliche Zeilenenden von einem der genannten Elemente geschrieben werden (dies kann insbesondere auftreten, wenn die Windows- und Mac-Versionen von SourceTree zusammen verwendet werden).

Die im Windows-Betriebssystem verwendeten Zeilenumbrüche (neue Zeilen) sind normalerweise Wagenrückläufe (CR), gefolgt von einem Zeilenvorschub (LF), wodurch es sich um einen Zeilenumbruch (CRLF) handelt, während Linux und Unix einen einfachen Zeilenvorschub (LF) verwenden. Die entsprechenden Kontrollsequenzen sind "\n"(für LF) und "\r\n"für (CRLF).

Dies ist eine Regel, die automatisch behoben werden kann. Die --fixOption in der Befehlszeile behebt automatisch Probleme, die von dieser Regel gemeldet werden.

Wenn Sie jedoch CRLFZeilenenden in Ihrem Code beibehalten möchten (während Sie unter Windows arbeiten), verwenden Sie diese fixOption nicht.


Dies ist eher ein Hack. Die andere Antwort von @The Coder ist richtig. Sie müssen die Konfiguration des Projekts
ändern

123

Ich fand es nützlich (wo ich Zeilenvorschübe ignorieren und keine Dateien ändern wollte), sie in der .eslintrc im Zeilenumbruchstil gemäß dieser Antwort zu ignorieren: https://stackoverflow.com/a/43008668/1129108

module.exports = {
  extends: 'google',
  quotes: [2, 'single'],
  globals: {
    SwaggerEditor: false
  },
  env: {
    browser: true
  },
  rules:{
    "linebreak-style": 0
  }
};

Dies. Vielen Dank für die Lösung
blfuentes

84

Wenn Sie vscode verwenden und Windows verwenden, würde ich Ihnen empfehlen, auf die Option unten rechts im Fenster zu klicken und sie von CRLF auf LF zu setzen . Weil wir die Konfiguration nicht nur deaktivieren sollten, um Fehler unter Windows zu entfernen

Wenn LF / CLRF nicht angezeigt wird, klicken Sie mit der rechten Maustaste auf die Statusleiste und wählen Sie Editor End of Line.

Speisekarte


4
Wie setze ich diese Konfiguration in einem Projekt auf global? Ich muss dies für jede Datei tun
BJAA

1
Die globale Einstellung in VSCode scheint zu sein : Settings -> Text Editor -> Files -> Eol, gesetzt auf \n. Dies scheint jedoch nur für neue Dateien zu gelten. Sie müssen jedoch jede vorhandene Datei manuell umschalten.
V. Rubinetti

Die akzeptierte Antwort (@Dheeraj Vepakomma) und diese haben mir beide geholfen, als sie mein Problem ergänzten. Vielen Dank!
Rodrigo.A92

11

autocrlfHabe gerade param in der .gitconfig Datei gemacht falseund den Code neu geklont. Es funktionierte!

[core] autocrlf = false


8

Passiert mit mir, weil ich git config core.autocrlf truegerannt bin und vergessen habe, zurück zu verehren.

Danach, wenn ich neuen Code auschecke / ziehe, wurden alle LF (Break Line in Unix) durch CRLF (Break Line in Windows) ersetzt.

Ich habe linter ausgeführt und alle Fehlermeldungen sind Expected linebreaks to be 'LF' but found 'CRLF'

Um das Problem zu beheben, habe ich den autocrlfWert durch Ausführen überprüft git config --list | grep autocrlfund Folgendes erhalten:

core.autocrlf=true
core.autocrlf=false

Ich habe das globale GIT Config ~/.gitconfigund ersetzt autocrlf = truedurch autocrlf = false.

Danach ging ich zu meinem Projekt und machte Folgendes (unter der Annahme des Codes im src/Ordner):

CURRENT_BRANCH=$(git branch | grep \* | cut -d ' ' -f2);
rm -rf src/*
git checkout $CURRENT_BRANCH src/

8

Wenn Sie es in crlf (Windows Eol ) möchten , gehen Sie zu Datei -> Einstellungen -> Einstellungen. Geben Sie "Zeilenende" auf der Registerkarte Benutzer ein und stellen Sie sicher, dass Files: Eol auf \ r \ n eingestellt ist. Wenn Sie die Prettier-Erweiterung verwenden, stellen Sie sicher, dass Prettier: End of Line auf crlf eingestellt ist . Geben Sie hier die Bildbeschreibung einFügen Sie abschließend in Ihrer eslintrc-Datei die folgende Regel hinzu:'linebreak-style': ['error', 'windows'] Geben Sie hier die Bildbeschreibung ein


1
Für die nützlichen Fotos
gestimmt

"Gehe zu Datei -> Einstellungen -> Einstellungen" In welcher App soll das gemacht werden?
JeffreyPia

6

Wenn Sie vscode verwenden, würde ich Ihnen empfehlen, auf die Option unten rechts im Fenster zu klicken und sie von CRLF auf LF zu setzen. Dadurch wurden meine Fehler behoben


wo genau ist das
KansaiRobot

2
Das ist die Lösung für mich! 10x
Barbu Barbu

1
Es hat mein Problem behoben.
Richard Vergis

2

Wenn Sie WebStorm verwenden und Windows verwenden, würde ich Ihnen empfehlen, auf Einstellungen / Editor / Codestil / Allgemein zu klicken und "Fenster (\ r \ n)" aus dem Dropdown-Menü auszuwählen. Diese Schritte gelten auch für Rider.

Geben Sie hier die Bildbeschreibung ein


0

Die gleiche Situation trat auf, als ich VSCode mit eslint verwendete. Wenn Sie VSCode verwenden,

1 - Klicken Sie auf den Bereich, dessen Name sowohl LF als auch CRLF sein kann, und zwar unten rechts im VScode.

2 - Wählen Sie LF aus dem Dropdown-Menü.

Das hat bei mir funktioniert.

Geben Sie hier die Bildbeschreibung ein

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.