줄 바꿈이 'LF'일 것으로 예상되었지만 'CRLF'줄 바꿈 스타일을 찾았습니다.


156

gulp 프로젝트에서 eslint를 사용할 때 이와 같은 오류가 발생
Expected linebreaks to be 'LF' but found 'CRLF' linebreak-style했으며 실행중인 gulp에 Windows 환경을 사용하고 있으며 전체 오류 로그는 다음과 같습니다.

 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

또한 실수를 나타내는 오류로 extra.js 파일을 포함 시켰습니다 .

function getWindowHeight() {
    return window.innerHeight;
}

getWindowHeight();

답변:


202

linebreak-style.eslintrc 또는 소스 코드에서 아래와 같이 규칙을 구성 했는지 확인하십시오 .

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

Windows에서 작업하고 있으므로이 규칙을 대신 사용할 수 있습니다.

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

다음의 문서 를 참조하십시오 linebreak-style:

모두 다른 편집자, VCS 응용 프로그램 및 운영 체제를 가진 많은 사람들과 함께 개발할 때 언급 된 것 중 하나에 의해 다른 줄 끝이 작성 될 수 있습니다 (특히 Windows와 Mac 버전의 SourceTree를 함께 사용할 때 발생할 수 있음).

Windows 운영 체제에서 사용되는 줄 바꿈 (새 줄)은 일반적으로 캐리지 리턴 (CR) 다음에 줄 바꿈 (LF)이되어 캐리지 리턴 줄 바꿈 (CRLF)이되고 Linux와 Unix는 단순 줄 바꿈 (LF)을 사용합니다. 해당 제어 순서는 "\n"(LF) 및 "\r\n"(CRLF)입니다.

이것은 자동으로 수정 가능한 규칙입니다. --fix명령 행 의 옵션은이 규칙에 의해보고 된 문제를 자동으로 수정합니다.

그러나 CRLF코드에서 줄 끝 을 유지 하려면 (Windows에서 작업 할 때) fix옵션을 사용하지 마십시오 .


이것은 더 많은 해킹입니다. @The Coder의 다른 대답은 정확합니다. 프로젝트 구성을 변경해야합니다.
user959690

124

이 답변에 따라 줄 바꿈 스타일을 사용하여 .eslintrc에서 파일을 무시하는 것이 유용하다는 것을 알았습니다 ( https://stackoverflow.com/a/43008668/1129108

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

이. 해결책에 감사드립니다
blfuentes

84

vscode를 사용 중이고 Windows 를 사용하는 경우 창의 오른쪽 하단에있는 옵션클릭하고 CRLF에서 LF로 설정하는 것이 좋습니다 . Windows에서 오류를 제거하기 위해 구성을 끄면 안됩니다.

LF / CLRF가 보이지 않으면 상태 표시 줄을 마우스 오른쪽 버튼으로 클릭하고 편집기 줄 끝을 선택하십시오.

메뉴


4
한 프로젝트에서이 구성을 전역으로 설정하는 방법은 무엇입니까? 모든 파일에
대해이

1
VSCode의 전역 설정은로 Settings -> Text Editor -> Files -> Eol설정되어 \n있습니다. 이것은 새 파일에만 적용되는 것처럼 보이지만 기존의 각 파일을 수동으로 전환해야합니다.
V. Rubinetti

허용 된 답변 (@ Dheeraj Vepakomma) 과이 답변은 내 문제를 보완하는 데 도움이되었습니다. 감사!
Rodrigo.A92

11

autocrlf.gitconfig 파일에서 param을 만들고 false코드를 복제했습니다. 효과가 있었다!

[core] autocrlf = false


8

내가 도망 갔기 때문에 나와 함께 일어 났고 git config core.autocrlf true나는 되돌아가는 것을 잊었다.

그 후 새 코드를 체크 아웃 / 풀하면 모든 LF (UNIX의 브레이크 라인)가 CRLF (Windows의 브레이크 라인)로 대체되었습니다.

린터를 실행했는데 모든 오류 메시지가 Expected linebreaks to be 'LF' but found 'CRLF'

문제를 해결하기 위해 autocrlf실행 git config --list | grep autocrlf하여 값을 확인 하고 다음을 얻었습니다.

core.autocrlf=true
core.autocrlf=false

전역 GIT 구성을 편집 ~/.gitconfig하고로 대체 autocrlf = true했습니다 autocrlf = false.

그 후, 나는 프로젝트에 가서 다음을 수행합니다 ( src/폴더 의 코드를 가정 ) :

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

8

crlf (Windows Eol) 에서 원하는 경우 파일-> 환경 설정-> 설정으로 이동하십시오. 사용자 탭에서 "end of line"을 입력하고 파일 : Eol\ r \ n으로 설정되어 있고 Prettier 확장을 사용하는 경우 Prettier : End of Linecrlf 로 설정되어 있는지 확인하십시오 . 여기에 이미지 설명을 입력하십시오마지막으로 eslintrc 파일에 다음 규칙을 추가하십시오.'linebreak-style': ['error', 'windows'] 여기에 이미지 설명을 입력하십시오


1
유용한 사진 10x
benshabatnoam

"파일-> 환경 설정-> 설정으로 이동"어떤 앱을 수행해야합니까?
JeffreyPia


2

당신이 사용하는 경우 WebStorm을 하고 있습니다 윈도우 내가 설정 / 에디터 / 코드 스타일 / 일반 탭을 클릭하고 또한 라이더 적용됩니다 드롭 다운 menu.These 단계에서 "창 (\ 연구 \ 없음)을 선택하도록 추천 할 것입니다.

여기에 이미지 설명을 입력하십시오


0

eslint와 함께 VSCode를 사용할 때도 같은 상황이 발생했습니다. VSCode를 사용하는 경우

1-VScode의 오른쪽 하단에서 LF 또는 CRLF가 될 수있는 영역을 클릭하십시오.

2-드롭 다운 메뉴에서 LF를 선택하십시오.

그것은 나를 위해 일했다.

여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.