🚀 리액트에서 ESlint + Prettier + Airbnb Style 한방에 셋팅하기

in #whan6 years ago (edited)


Design by @imrahelk


안녕하세요. 안피곤입니다.

협업으로 개발할때는 코딩 스타일과 코드 가독성이 매우 중요합니다. 이걸 좀더 편하게 할 수 있는 도구가 있어서 소개합니다. ESLint는 자바스크립트 문법을 검사해줍니다. 그리고 Prettier는 작성된 코드를 규칙에 따라 이쁘게 정리해줍니다.

제가 주로 사용하는 VSCode 에디터를 기준으로 설명합니다. 비슷한 다른 에디터도 설정 방식이 비슷할 것이라고 생각합니다.


VSCode를 실행하고 ESLint와 Prettier 익스텐션을 설치합니다.


ESLint 설치하기

설치링크: https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint

Prettier 설치하기

설치링크: https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode




프로젝트에 적용하기

복잡한 설정은 가라~! 이게 바로 리액트의 매력입니다. ㅋ
ESLint와 Prettier의 복잡한 설정을 한방에 할 수 있는 멋진 쉘 스크립트가 있습니다. 개발자는 Paulo Ramos입니다.

출처: https://github.com/paulolramos/eslint-prettier-airbnb-react


프로젝트 루트 디렉토리에서 다음 명령을 수행합니다.

exec 3<&1;bash <&3 <(curl https://raw.githubusercontent.com/paulolramos/eslint-prettier-airbnb-react/master/eslint-prettier-config.sh 2> /dev/null)

스크립트가 bash 쉘입니다. 그래서 윈도우에서 설정하기 위해서는 Ubuntu App가 필요할 것이라고 생각됩니다.


위 명령어를 실행하면 아래와 같은 화면이 출력됩니다.

저는 패키지 매니저를 yarn을 선택하였습니다. 그리고 설정 파일 타입은 .json. 한 라인의 길이는 80. 후행 콤마 스타일은 all를 선택하였습니다. 본인의 코딩 스타일에 맞게 선택하시면 됩니다. Trailing Comma는 이해를 돕기 위해 잘 설명되어 있는 블로그를 소개합니다: https://heygyun.tistory.com/49


설치가 완료되면 .eslintrc.json.prettierrc.json 파일이 생성됩니다. 그리고 .prettierrc.json 파일을 열어보면 다음 내용이 입력되어 있습니다.

{
  "printWidth": 80,
  "singleQuote": true,
  "trailingComma": "all"
}


입력되어 있는 내용은 쉘 스크립트에서 우리가 선택한 옵션입니다.

  • printWidth는 한 라인의 길이를 설정합니다. 가독성을 위한 권장 길이는 80자입니다.
  • singleQuote는 문자열에 ' 를 사용합니다.
  • trailingComma는 배열 후행에 쉼표가 추가됩니다.


저는 다음 옵션을 추가하였습니다.

  "useTabs": false,
  "tabWidth": 2,
  "semi": true,
  • useTabs가 false이면 들여쓰기에 탭 대신에 스페이스를 사용합니다.
  • tabWidth 는 들여쓰기 스페이스 공백 갯수입니다.
  • semi는 코드 끝에 세미콜론;을 사용합니다.


Prettier에는 더 많은 옵션이 있습니다. 더 자세한 내용은 Prettier 공식 문서 를 참고하세요.


이제 F1를 누르고 Format Documents를 선택하면 코드가 깔끔해집니다. 단축키는 Shift + Option/Alt + F 입니다.




파일 저장시 자동 적용되게 하기

코드 정리를 자동으로 해놓으면 매우 편리합니다. 아래 설정 과정을 통해 파일 저장할 때 코드가 자동으로 정리되게 해보세요.

Settings에서 JavaScript Format를 검색합니다. 자바스크립트 기본 포맷터 기능을 비활성화합니다. 우리는 Prettier를 사용하기 때문에 필요가 없습니다.

Settings에서 Format On Save을 검색합니다. Editor: Format On Save를 활성화합니다. 그럼 저장할때 코드를 자동 포멧팅 해줍니다.

Settings에서 Auto Fix On Save을 검색합니다. Eslint: Auto Fix on Save를 활성화 합니다.

settings.json에서 보면 다음 코드가 추가되어 있습니다.

{
    "eslint.autoFixOnSave": true,
    "editor.formatOnSave": true,
    "javascript.format.enable": false
}    


코드를 작성하고 파일을 저장해보세요. 그러면 아래와 같이 코드가 깔끔하게 자동으로 정리됩니다.


해피 코딩하세요~!


Sort:  

이거 한번 잘 살펴봐야겠어요. 특히 python은 아시다시피 공백/탭이 맞아야하는데 제가 여전히 vi를 주로 쓰는데 세팅이 다른 경우 탭/공백 문제로 에러가 나곤 하죠ㅠㅠ 눈으로 보기엔 문제가 없으니 더더욱 찾기가. 어제 곰돌이도 그래서 계속 자고 있었네요.

사실 개인적으로 쓰는 것들은 그냥 포맷팅 신경 안쓰고 대충 만드는데ㅎㅎ 뭔가 체계를 갖추어야겠다는 생각은 종종 들더군요.

!dramatoken

드라마토큰 감사합니다. ㅎㅎ 저는 회사랑 집에서 작업을 병행하다보니 정말 필요합니다. ㅋ
게다가 전 주로 13인지 노트북에서 작업하기 때문에 탭보다는 2스페이스를 선호합니다.
이걸 자동으로 해주니 너무 편합니다.
파이썬도 요런 코딩 포맷팅 자동화 툴이 있으면 좋겠습니다. ㅋ

저를 위한 포스팅으로 보이네요~
적용해보도록 하긋습니드아! ㅋ

해피베리보이님을 염두에 두고 작성한 글입니다. ㅎㅎ 사실이에요.ㅋ

옥희~ 일단 설치까진 했고~ 설정은~ 시간될때 고고합니당!

곰돌이가 @anpigon님의 소중한 댓글에 $0.015을 보팅해서 $0.008을 살려드리고 가요. 곰돌이가 지금까지 총 4654번 $52.595을 보팅해서 $59.130을 구했습니다. @gomdory 곰도뤼~

곰돌이가 @happyberrysboy님의 소중한 댓글에 $0.015을 보팅해서 $0.008을 살려드리고 가요. 곰돌이가 지금까지 총 4644번 $52.512을 보팅해서 $58.983을 구했습니다. @gomdory 곰도뤼~

협업할 때 lint 규칙 없으면 가독성 많이 떨어지죠. API 와 코딩 가이드라인까지 있으면 금상첨화.~

요즘 VSCode 익스텐션 쪽을 파고 있습니다. 알고계신 좋은 도구 있으면 소개해주세요. ㅎㅎ
감사합니다.

전 요즘 aws amplify와 씨름 중이라. ㅎㅎ. VSCode가 가볍고 정말 편리한 에디터죠. 요즘 Jet brains 풀 패키지 구매해서 사용중이라 VCCode 익스텐션은 거의 Markdown 편집기 정도로만 쓰고 있네요. 코딩 가독성 관련해서는 저는 이 책이 많이 도움되었어요. https://pragprog.com/book/esswift/swift-style

Jet brains 풀 패키지 부럽습니다. ㅎㅎ 그리고 책 추천 감사합니다.

곰돌이가 @dakeshi님의 소중한 댓글에 $0.015을 보팅해서 $0.008을 살려드리고 가요. 곰돌이가 지금까지 총 4640번 $52.479을 보팅해서 $58.924을 구했습니다. @gomdory 곰도뤼~

happyberrysboy님이 anpigon님을 멘션하셨습니당. 아래 링크를 누르시면 연결되용~ ^^
happyberrysboy님의 [kr-dev] Steemit Tools Tag 바로가기 / Markdown 가져오기

...오늘 또 소소하게 기능 2개가 추가 됐습니다요..
전체 메뉴
  • 첫번째 메뉴 : Tag 모아보기(anpigon이 개발중, 현재도 링크로 연결은 됨)
  • 두번째 메뉴 : User 바로가기, 유저 등록 후 정보...

    li-li님이 anpigon님을 멘션하셨습니당. 아래 링크를 누르시면 연결되용~ ^^
    li-li님의 스팀잇 KR 주식회사 - nTopaz(81) #190503

    ...양성소 nTopaz의 회원들을 한 번에 만날 수 있는 포스팅이 될 수 있으면 하고 바랍니다.

    Aanpigonasd5710
    autokjk70
    ayogom
    Bbanguri bbana brunch
    Cc...

    @anpigon님 곰돌이가 1.7배로 보팅해드리고 가요~! 영차~

    이글 글 좋아함!
    뭘 하나 깔고 하면 일일하 하나씩 해당 post글 보면서 찾고 설치하는거 너무 귀찮음!

    감사합니다. 이렇게 개발환경을 한방에 셋팅하는게 정신건강에 정말 좋습니다.

    Hi @anpigon!

    Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
    Your UA account score is currently 2.373 which ranks you at #18960 across all Steem accounts.
    Your rank has improved 122 places in the last three days (old rank 19082).

    In our last Algorithmic Curation Round, consisting of 172 contributions, your post is ranked at #169.

    Evaluation of your UA score:
    • Only a few people are following you, try to convince more people with good work.
    • Your contribution has not gone unnoticed, keep up the good work!
    • Try to work on user engagement: the more people that interact with you via the comments, the higher your UA score!

    Feel free to join our @steem-ua Discord server

    아낌없이주는 나무에 대한 후원으로 왔어요. 미약하나마 보팅 하고 가요.

    Posted using Partiko Android

    제목보구~ 스크롤 내리고~
    글을 안 읽으니 그래도 덜피곤~~~ ㅋㅋㅋㅋㅋㅋㅋ
    맛점하시고, 즐거운 오후 되세요~~

    안피곤~ 덜피곤~
    항상 덜피곤하신 독거노인님 감사합니다. ㅎㅎ

    Coin Marketplace

    STEEM 0.12
    TRX 0.34
    JST 0.032
    BTC 109644.48
    ETH 4026.54
    USDT 1.00
    SBD 0.80