Se esperaba que los saltos de línea fueran 'LF' pero se encontró que el estilo de salto de línea 'CRLF'


156

Cuando uso eslint en el proyecto gulp, he encontrado un problema con un error como este
Expected linebreaks to be 'LF' but found 'CRLF' linebreak-styley estoy usando el entorno de Windows para el trago en ejecución y el registro de errores completo se muestra a continuación

 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

También he incluido el archivo extra.js como el error que indica un posible error.

function getWindowHeight() {
    return window.innerHeight;
}

getWindowHeight();

Respuestas:


202

Compruebe si tiene la linebreak-styleregla configurada de la siguiente manera, ya sea en su .eslintrc o en el código fuente:

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

Como está trabajando en Windows, es posible que desee utilizar esta regla en su lugar:

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

Consulte la documentación de linebreak-style:

Cuando se desarrolla con muchas personas que tienen editores, aplicaciones VCS y sistemas operativos diferentes, puede ocurrir que las terminaciones de línea diferentes sean escritas por cualquiera de los mencionados (podría suceder especialmente cuando se usan las versiones de Windows y Mac de SourceTree juntas).

Los saltos de línea (nuevas líneas) utilizados en el sistema operativo Windows suelen ser retornos de carro (CR) seguidos de un salto de línea (LF), lo que lo convierte en un salto de línea de retorno de carro (CRLF), mientras que Linux y Unix usan un salto de línea simple (LF). Las secuencias de control correspondientes son "\n"(para LF) y "\r\n"para (CRLF).

Esta es una regla que se puede corregir automáticamente. La --fixopción en la línea de comando corrige automáticamente los problemas reportados por esta regla.

Pero si desea conservar CRLFlos finales de línea en su código (ya que está trabajando en Windows), no use la fixopción.


Esto es más un truco. La otra respuesta de @The Coder es correcta. Necesita cambiar la configuración del proyecto
user959690

124

Lo encontré útil (donde quería ignorar los avances de línea y no cambiar ningún archivo) para ignorarlos en el .eslintrc usando linebreak-style según esta respuesta: https://stackoverflow.com/a/43008668/1129108

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

Esta. Gracias por la solución
blfuentes

84

Si está usando vscode y está en Windows, le recomendaría que haga clic en la opción en la parte inferior derecha de la ventana y la configure en LF desde CRLF . Porque no debemos apagar la configuración solo por eliminar errores en Windows

Si no ve LF / CLRF, haga clic derecho en la barra de estado y seleccione Editor Fin de línea.

menú


44
¿Cómo establecer esta configuración en global en un proyecto? Tengo que hacer esto para cada archivo
BJAA

1
La configuración global en VSCode parece ser: Settings -> Text Editor -> Files -> Eol establecido en \n. Sin embargo, parece que esto solo se aplica a los archivos nuevos, aún tendrá que cambiar cada archivo existente manualmente.
V. Rubinetti

La respuesta aceptada (@Dheeraj Vepakomma) y esta me ayudaron mientras complementaban mi problema. ¡Gracias!
Rodrigo.A92

11

Acabo de hacer autocrlfparam en el archivo false.gitconfig y recloné el código. ¡Funcionó!

[core] autocrlf = false


8

Pasó conmigo porque corrí git config core.autocrlf truey olvidé retroceder.

Después de eso, cuando pago / extraigo un nuevo código, todo LF (línea de corte en Unix) fue reemplazado por CRLF (línea de corte en Windows).

Ejecuté linter, y todos los mensajes de error son Expected linebreaks to be 'LF' but found 'CRLF'

Para solucionar el problema, verifiqué el autocrlfvalor ejecutando git config --list | grep autocrlfy obtuve:

core.autocrlf=true
core.autocrlf=false

Edité la configuración global de GIT ~/.gitconfigy la reemplacé autocrlf = trueporautocrlf = false .

Después de eso, fui a mi proyecto y hice lo siguiente (asumiendo el código en la src/carpeta):

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

8

Si lo desea en crlf (Windows Eol), vaya a Archivo -> Preferencias -> Configuración. Escriba "fin de línea" en la pestaña Usuario y asegúrese de que Archivos: Eol esté configurado en \ r \ n y si está utilizando la extensión Prettier, asegúrese de que Prettier: Fin de línea esté configurado en crlf . ingrese la descripción de la imagen aquíFinalmente, en su archivo eslintrc, agregue esta regla:'linebreak-style': ['error', 'windows'] ingrese la descripción de la imagen aquí


1
Votado por las fotos útiles, 10x
benshabatnoam

"vaya a Archivo -> Preferencias -> Configuración" ¿En qué aplicación se debe hacer esto?
JeffreyPia

6

Si está usando vscode, le recomendaría que haga clic en la opción en la parte inferior derecha de la ventana y la configure en LF desde CRLF ... esto solucionó mis errores


¿Dónde es exactamente esto?
KansaiRobot

2
esa es la solución para mí! 10x
Barbu Barbu

1
Se solucionó mi problema.
Richard Vergis

2

Si está utilizando WebStorm y está en Windows, le recomendaría que haga clic en configuración / editor / estilo de código / pestaña general y seleccione "ventanas (\ r \ n) en el menú desplegable. Estos pasos también se aplicarán a Rider.

ingrese la descripción de la imagen aquí


0

La misma situación ocurrió cuando estaba usando VSCode con eslint. Si usa VSCode,

1 - Haga clic en el área cuyo nombre puede ser LF o CRLF en la parte inferior derecha del VScode.

2 - Seleccione LF en el menú desplegable.

Eso funcionó para mí.

ingrese la descripción de la imagen aquí

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.