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

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();



답변

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옵션을 사용하지 마십시오 .


답변

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

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


답변

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

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

메뉴


답변

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

[core]
autocrlf = false


답변

내가 도망 갔기 때문에 나와 함께 일어 났고 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/


답변

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


답변

vscode를 사용하는 경우 창 오른쪽 하단의 옵션을 클릭하고 CRLF에서 LF로 설정하는 것이 좋습니다.