Les sauts de ligne attendus sont «LF» mais ont trouvé le style de saut de ligne «CRLF»

156

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-styleet j'utilise l'environnement Windows pour le gulp en cours d'exécution et l'ensemble du journal 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 également inclus le fichier extra.js comme erreur indiquant une erreur possible.

function getWindowHeight() {
    return window.innerHeight;
}

getWindowHeight();
SaiKiran
la source

Réponses:

203

Vérifiez si la linebreak-stylerègle est configurée comme ci-dessous dans votre .eslintrc ou dans le code source:

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

Puisque vous travaillez sous Windows, vous souhaiterez peut-être utiliser cette règle à la place:

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

Reportez-vous à la documentation de linebreak-style:

Lors du développement avec beaucoup de gens ayant tous des éditeurs, des applications VCS et des systèmes d'exploitation différents, il peut arriver que différentes fins de ligne soient écrites par l'un ou l'autre des éléments mentionnés (cela peut se produire en particulier lors de l'utilisation simultanée des 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 chariot (CR) suivis d'un saut de ligne (LF), ce qui en fait un saut de ligne retour chariot (CRLF) alors 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 peut être corrigée automatiquement. L' --fixoption sur la ligne de commande résout automatiquement les problèmes signalés par cette règle.

Mais si vous souhaitez conserver les CRLFfins de ligne dans votre code (comme vous travaillez sous Windows), n'utilisez pas l' fixoption.

Dheeraj Vepakomma
la source
C'est plus un hack. L'autre réponse de @The Coder est correcte. Vous devez changer la configuration du projet
user959690
125

J'ai trouvé utile (où je voulais ignorer les sauts de ligne et ne modifier aucun fichier) de les ignorer dans le .eslintrc en utilisant le style de saut de ligne selon 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
  }
};
Le codeur
la source
Ce. Merci pour la solution
blfuentes
84

Si vous utilisez vscode et que vous êtes sous Windows, je vous recommande de cliquer sur l'option en bas à droite de la fenêtre et de le définir sur LF à partir de CRLF . Parce que nous ne devons pas désactiver la configuration uniquement pour supprimer les erreurs sous Windows

Si vous ne voyez pas LF / CLRF, cliquez avec le bouton droit de la souris sur la barre d'état et sélectionnez Editor End of Line.

menu

M. Parfait
la source
4
Comment définir cette configuration sur globale dans un projet? Je dois le faire pour chaque fichier
BJAA
1
Le paramètre global dans VSCode semble être:, Settings -> Text Editor -> Files -> Eoldéfini sur \n. Cependant, cela ne semble s'appliquer qu'aux nouveaux fichiers, vous devrez toujours changer manuellement chaque fichier existant.
V. Rubinetti
La réponse acceptée (@Dheeraj Vepakomma) et celle-ci m'ont toutes les deux aidées en complétant mon problème. Merci!
Rodrigo.A92
11

Je autocrlfviens de créer un paramètre dans le fichier false.gitconfig et de recloner le code. Ça a marché!

[core] autocrlf = false

vnxyz
la source
8

Ça m'est git config core.autocrlf truearrivé parce que j'ai couru et que j'ai oublié de revenir.

Après cela, lorsque je récupère / tire un 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 autocrlfvaleur en exécutant git config --list | grep autocrlfet j'ai obtenu:

core.autocrlf=true
core.autocrlf=false

J'ai édité la configuration globale de GIT ~/.gitconfiget remplacé autocrlf = truepar autocrlf = false.

Après cela, je suis allé à mon projet et j'ai fait ce qui suit (en supposant le code dans le src/dossier):

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

Si vous le souhaitez dans crlf (Windows Eol), allez dans Fichier -> Préférences -> Paramètres. Tapez "end of line" dans l'onglet User et assurez-vous que Files: Eol est défini sur \ r \ n et si vous utilisez l'extension Prettier, assurez-vous que Prettier: End of Line est défini sur crlf . entrez la description de l'image iciEnfin, sur votre fichier eslintrc, ajoutez cette règle:'linebreak-style': ['error', 'windows'] entrez la description de l'image ici

EMBRAYAGE
la source
1
Voté pour les photos utiles, 10x
benshabatnoam
"Allez dans Fichier -> Préférences -> Paramètres" Dans quelle application cela doit-il être fait?
JeffreyPia le
6

Si vous utilisez vscode, je vous recommande de cliquer sur l'option en bas à droite de la fenêtre et de le définir sur LF à partir de CRLF .. cela a corrigé mes erreurs

Athif Shaffy
la source
où est-ce exactement?
KansaiRobot
2
c'est la solution pour moi! 10x
Barbu Barbu
1
Cela a résolu mon problème.
Richard Vergis le
2

Si vous utilisez WebStorm et que vous êtes sous Windows, je vous recommande de cliquer sur paramètres / éditeur / style de code / onglet général et de sélectionner "fenêtres (\ r \ n) dans le menu déroulant. Ces étapes s'appliqueront également à Rider.

entrez la description de l'image ici

binary_fm
la source
0

La même situation s'est produite lorsque j'utilisais VSCode avec eslint. Si vous utilisez VSCode,

1 - Cliquez sur la zone dont le nom peut être à la fois LF ou CRLF où en bas à droite du VScode.

2 - Sélectionnez LF dans le menu déroulant.

Cela a fonctionné pour moi.

entrez la description de l'image ici

Serhan C.
la source