Lors de l'utilisation d'eslint dans le projet gulp, j'ai rencontré un problème avec une erreur comme celle-ci.Expected linebreaks to be 'LF' but found 'CRLF' linebreak-style
et j'utilise l'environnement Windows pour le gulp en cours d'exécution et le journal complet des erreurs est donné ci-dessous
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
J'ai aussi inclus le fichier extra.js en tant qu'erreur indiquant une erreur possible.
function getWindowHeight() {
return window.innerHeight;
}
getWindowHeight();
Vérifiez si vous avez la règle linebreak-style
configurée comme ci-dessous, soit dans votre code .eslintrc, soit dans votre code source:
/*eslint linebreak-style: ["error", "unix"]*/
Puisque vous travaillez sous Windows, vous pouvez utiliser cette règle à la place:
/*eslint linebreak-style: ["error", "windows"]*/
Reportez-vous à la documentation de linebreak-style
:
Lorsque vous développez avec un grand nombre de personnes ayant tous des éditeurs, des applications VCS et des systèmes d'exploitation différents, il peut arriver que des fins de ligne différentes soient écrites par l'un des deux éléments mentionnés (notamment lorsque vous utilisez conjointement les versions Windows et mac de SourceTree).
Les sauts de ligne (nouvelles lignes) utilisés dans le système d'exploitation Windows sont généralement des retours à la ligne (CR) suivis d'un saut de ligne (LF), ce qui en fait un retour à la ligne (CRLF), tandis que Linux et Unix utilisent un simple saut de ligne (LF). Les séquences de contrôle correspondantes sont
"\n"
(pour LF) et"\r\n"
pour (CRLF).
C'est une règle qui est automatiquement réparable. L'option --fix
sur la ligne de commande corrige automatiquement les problèmes signalés par cette règle.
Toutefois, si vous souhaitez conserver les fins de ligne CRLF
dans votre code (car vous travaillez sous Windows), n'utilisez pas l'option fix
.
J'ai trouvé utile (où je voulais ignorer les sauts de ligne et ne changer aucun fichier) de les ignorer dans le fichier .eslintrc en utilisant le style de saut de ligne comme indiqué dans cette réponse: https://stackoverflow.com/a/43008668/ 1129108
module.exports = {
extends: 'google',
quotes: [2, 'single'],
globals: {
SwaggerEditor: false
},
env: {
browser: true
},
rules:{
"linebreak-style": 0
}
};
Si vous utilisez vscode et que vous êtes sur Windows , je vous recommanderais de cliquez sur l'option en bas à droite. de la fenêtre et réglez-le sur LF à partir de CRLF . Parce que nous ne devrions pas désactiver la configuration juste pour supprimer les erreurs sur Windows
Si vous ne voyez pas LF/CLRF, cliquez avec le bouton droit de la souris sur la barre d'état et sélectionnez Fin de ligne de l'éditeur.
Je viens de créer autocrlf
param dans le fichier .gitconfig false
et de recloner le code. Ça a marché!
[core] autocrlf = false
C'est arrivé avec moi parce que j'ai couru git config core.autocrlf true
et j'ai oublié de revenir.
Après cela, lorsque je récupère/extrait le nouveau code, tout LF (ligne de rupture sous Unix) a été remplacé par CRLF (ligne de rupture sous Windows).
J'ai couru linter, et tous les messages d'erreur sont Expected linebreaks to be 'LF' but found 'CRLF'
Pour résoudre le problème, j'ai vérifié la valeur de autocrlf
en exécutant git config --list | grep autocrlf
et j'ai obtenu:
core.autocrlf=true
core.autocrlf=false
J'ai édité la configuration globale GIT ~/.gitconfig
et remplacé autocrlf = true
par autocrlf = false
.
Après cela, je suis allé dans mon projet et procédez comme suit (en supposant que le code se trouve dans le dossier src/
]:
CURRENT_BRANCH=$(git branch | grep \* | cut -d ' ' -f2);
rm -rf src/*
git checkout $CURRENT_BRANCH src/
Si vous utilisez vscode, je vous recommanderais de cliquer sur l'option en bas à droite de la fenêtre et de la définir sur LF à partir de CRLF..Ce problème a été résolu.