javascript - Forventede linjeskift å være 'LF', men fant 'CRLF' linebreak-style
Når jeg bruker eslint i gulp-prosjektet har jeg støtt på et problem med en feil som denne
Forventet linjeskift til å være 'LF' men fant 'CRLF' linebreak-style og jeg bruker Windows-miljøet for å kjøre gulp, og hele feilloggen er gitt nedenfor
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
Jeg har også inkludert extra.js-filen siden feilen indikerer mulig feil.
function getWindowHeight() {
return window.innerHeight;
}
getWindowHeight();
Svar #1
Sjekk om du har linebreak-style-regelen konfigurert som nedenfor enten i din .eslintrc eller i kildekoden:
/*eslint linebreak-style: ["error", "unix"]*/
Siden du jobber på Windows, kan det hende du vil bruke denne regelen i stedet:
/*eslint linebreak-style: ["error", "windows"]*/
Se dokumentasjonen for linebreak-style:
Når man utvikler med mange personer som alle har forskjellige editorer, VCS-applikasjoner og operativsystemer, kan det hende at ulike linjeavslutninger blir skrevet av noen av de nevnte (dette kan spesielt skje når man bruker Windows- og Mac-versjonene av SourceTree sammen).
Linjeskiftene (nye linjer) som brukes i Windows-operativsystemet er vanligvis vognturer (CR) etterfulgt av et linjeskift (LF), noe som gjør det til en vogntur-linjeskift (CRLF), mens Linux og Unix bruker et enkelt linjeskift (LF). De tilsvarende kontrollsekvensene er
"\n"(for LF) og"\n"for (CRLF).
Dette er en regel som kan fikses automatisk. Alternativet --fix på kommandolinjen fjerner automatisk problemer rapportert av denne regelen.
Men hvis du ønsker å beholde CRLF-linjeskift i koden din (siden du jobber på Windows), ikke bruk fix-alternativet.
Svar #2
Jeg syntes det var nyttig (der jeg ønsket å ignorere linjeskift og ikke endre noen filer) å ignorere dem i .eslintrc ved å bruke linebreak-style som i dette svaret: https://stackoverflow.com/a/43008668/1129108
module.exports = {
extends: 'google',
quotes: [2, 'single'],
globals: {
SwaggerEditor: false
},
env: {
browser: true
},
rules:{
"linebreak-style": 0
}
};
Svar #3
Hvis du bruker vscode og du er på Windows, vil jeg anbefale deg å klikke på alternativet nederst til høyre i vinduet og sette det til LF fra CRLF. For vi bør ikke slå av konfigurasjonen bare for å fjerne feil på Windows
Hvis du ikke ser LF/CLRF, høyreklikk på statuslinjen og velg Editor End of Line.
Svar #4
Her er en virkelig god måte å håndtere denne feilen på. Du kan sette følgende linje i .eslintrc.js-filen.
Basert på operativsystemet vil det bruke passende linjeskift.
rules: {
'linebreak-style': ['error', process.platform === 'win32' ? 'windows' : 'unix'],
}
Svar #5
Hvis du vil ha det i crlf (Windows Eol), gå til Fil -> Preferanser -> Innstillinger. Skriv "end of line" i Bruker-fanen og sørg for at Files: Eol er satt til \r\n, og hvis du bruker Prettier-utvidelsen, sørg for at Prettier: End of Line er satt til crlf.
Til slutt, på eslintrc-filen din, legg til denne regelen: 'linebreak-style': ['error', 'windows']
Svar #6
legg til i regelen vår i .eslintrc-filen 'linebreak-style':0 i Vue js
rules: {
'linebreak-style':0,
}
Svar #7
git config core.autocrlf false
git rm --cached -r .
git reset --hard
Svar #8
Jeg har nettopp satt autocrlf-parameteren i .gitconfig-filen til false og klonet koden på nytt. Det fungerte!
[core] autocrlf=false
Svar #9
Den samme situasjonen oppsto da jeg brukte VSCode med eslint. Hvis du bruker VSCode,
1 - Klikk på området der navnet kan være enten LF eller CRLF nederst til høyre i VScode.
2 - Velg LF fra rullegardinmenyen.
Det har fungert for meg.
Svar #10
Skjedde med meg fordi jeg kjørte git config core.autocrlf true og jeg glemte å reversere det tilbake.
Etter det, når jeg sjekker ut/henter ny kode, ble alle LF (linjeskift i Unix) erstattet med CRLF (linjeskift i Windows).
Jeg kjørte linter, og alle feilmeldingene er Forventet linjeskift til å være 'LF' men fant 'CRLF'
For å fikse problemet, sjekket jeg autocrlf-verdien ved å kjøre git config --list | grep autocrlf og jeg fikk:
core.autocrlf=true
core.autocrlf=false
Jeg redigerte den globale GIT-konfigurasjonen ~/.gitconfig og erstattet autocrlf=true med autocrlf=false.
Etter det gikk jeg til prosjektet mitt og gjorde følgende (forutsatt koden i src/-mappen):
CURRENT_BRANCH=$(git branch | grep \* | cut -d ' ' -f2);
rm -rf src/*
git checkout $CURRENT_BRANCH src/
Svar #11
Hvis du bruker VSCode, vil jeg anbefale deg å klikke på alternativet nederst til høyre i vinduet og sette det til LF fra CRLF.. dette løste mine feil
Svar #12
Hvis du vil bytte til LF og du bruker VS Code, kan du gjøre det per fil på denne måten:





