TIL

ESLint - LF vs CRLF

rachel_13 2023. 7. 29. 14:08

프로젝트를 공동 작업하다보면, 윈도우 사용자와 Mac OS 사용자의 줄바꿈 설정이 다른 경우가 있다.

 

Line Seperator

  • 윈도우 기본 설정 : CRLF (\r\n)
  • Mac , Linux 기본 설정 : LF (\n)

‣ 차이점 : https://www.aleksandrhovhannisyan.com/blog/crlf-vs-lf-normalizing-line-endings-in-git/

 

CRLF vs. LF: Normalizing Line Endings in Git | Aleksandr Hovhannisyan

Line endings can differ from one OS to another. Learn the history behind CRLF and LF line endings and how to enforce line endings in Git.

www.aleksandrhovhannisyan.com

 

 

서로 다른 OS 작업 환경에서 린트 설정을 맞춰주기 위해서는 별도의 린트 설정이 필요하다.

 

.eslintrc.json

{
  "rules": {
    "linebreak-style":[
      "error", "unix"
    ]
  }
}

이렇게 설정하면 LF 형식이 아닐 경우 error가 난다.

그런데, 나의 경우는 이미 프로젝트가 어느 정도 진행된 후 작업자가 추가 발생하여서 적용하게 된 케이스여서 이렇게 강제하는 것은 조금 과하다고 팀에서 판단하였다.

 

그래서 버전 시스템에서 유연하게 작동하게 하려고 한다. Window에서 작업한 사용자가 checkout시 LF 줄바꿈을 CRLF로 변환하게 되는데, 변경사항 커밋시 LF로 줄바꿈이 되도록 설정할 수 있다.

 

.gitattruibutes 파일을 루트 경로에 추가하고, 아래와 같이 옵션을 추가하면 된다.

*.ts    text eol=lf
*.tsx   text eol=lf

 

 

[참고]

1. https://eslint.org/docs/latest/rules/linebreak-style

2. https://git-scm.com/docs/gitattributes