[React] ESLint + Prettier 찍먹해보기

zl존석동

·

2022. 5. 14. 12:42

 


ReactJS 팀 프로젝트를 위해 ESLint + Prettier 설정 했던 것을 기록하였다!


 

 

 

ESLint란? 

 

 Ecma Script, Javscript를 위한 것인데 코드를 보고 사소한 것부터 심각한 것 까지 발생될 문제들을 미리 찾아주는 도구이다.

 

 

소스 코드를 분석해서 문법오류, 스타일 오류, 부적절한 구조를 가지는 코드를 식별할 수 있게 해준다.

 

자바 코드를 칠 때 IDE에서 Sonarlint 를 늘 사용중이기 때문에 Lint 라는 단어를 보고 뭐하는 놈인지 바로 이해했다.

 

 

 

Prettier란?

 

 

개발자들에게 일관적인 코딩 스타일을 유지할 수 있게 도와주는 코드 포매터이다.

 

소스코드 작성 시 미리 정해진 스타일 가이드를 따라줄 수 있도록 코드를 자동으로 변환해주는 도구다.

 

 

 

 

왜 사용하기로 했나요?

 

기본적인 문법이나 스타일도 아직 잘 알지 못하는 햇병아리이기 때문에 의문의 빨간줄들은 도움이 상당히 많이 될 것이라고 생각헀다.

 

인터프리터 언어이기 때문에 사전에 조금이라도 오류를 식별할 수 있다면 개발속도를 오히려 더 향상시킬 수 있을 것이라고 기대했다.

 

같이 작업하기 때문에 사전에 정해진 규칙대로 코드 포맷팅을 해 자동으로 정렬시켜주는 것은 매우 유용할 것 같았다!

 

 

 

 

 

시작하기

 

 

에어비엔비 스타일은 아직 팀원과 자신 모두 너무 햇병아리라 적용하지 않기로 하였다.

 

 

 

ESLint 설치

$ npm install eslint --save-dev

 

Prettier 설치

$ npm install prettier --save-dev --save-exact

 

Prettier + ESLint 모듈

$ npm install eslint-plugin-prettier eslint-config-prettier --save-dev

 

 

프로젝트 루트 경로에 .eslintrc.js 파일 추가

 

module.exports = {
    env: {
        browser: true,
        es6: true,
        node: true,
        es2020: true,
        jest: true,
    },
    parserOptions: {
        sourceType: 'module',
        allowImportExportEverywhere: true,
    },
    extends: [
        'eslint:recommended',
        'plugin:import/errors',
        'plugin:import/warnings',
        'plugin:react/recommended',
        'prettier',
    ],

    rules: {
        'react/jsx-uses-react': 'off',
        'react/react-in-jsx-scope': 'off',
        'react/prop-types': 0,
        'react/jsx-filename-extension': [1, { extensions: ['js', 'jsx'] }],
    },
};

 

 

프로젝트 루트 경로에 .prettierrc.js 추가

 

module.exports = {
    singleQuote: true, // 문자열은 따옴표
    semi: true, //코드 마지막에 세미콜른 있게
    tabWidth: 2, // 들여쓰기 너비는 2칸
    trailingComma: 'all', // 객체나 배열 뒤에 항상 콤마를 붙임
    printWidth: 100, // 코드 한줄에 쓸 수 있는 코드 길이
    arrowParens: 'avoid', // Arrow Function 하나의 매개변수를 받을 때 괄호를 생략
    bracketSpacing: true, // 중괄호 사이 공백 지정 
  }

 

 

VSCode 에 적용하기

 

Extension 에서 ESLint 와 Prettier 를 설치하고 활성화 해줍니다.

 

 

 

 

ctrl + shift + p 를 누르고 settings.json 검색후 아래와 같이 설정하기

 

{
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.formatOnSave": true,
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  }
}

 

 

 

 

느낀점

 

 

ESLint 의 경우 강해지면 강해질수록 룰을 추가하고 규제를 많이 걸 수 있지 않을까 라는 생각이 들었다.

 

규제가 많을 수록 배울 수 있는 점도 많을 것 같다.

 

 

Prettier 의 경우는 사용해보니 마약이 아닐까 싶다!

 

비록 최소한의 설정으로 최소한으로 사용해본 것이지만..

 

그러고 보니 VSCode ExtensionSort-Imports 라는 것을 다운받아서 사용해보았는데

 

import 순서를 알아서 지정해줘서 이것도 굉장히 편했다.

 

import 순서로 인해 발생될 문제라던가 협업시 충돌과 같은 문제를 미리 방지 해줄 수 있을 것 같아 사용에 문제가 없다면 계속 사용할 것 같다는 생각이 든다.

 

 

인텔리제이에서 자바 코드 칠 때도 저런 기능이 없나 꼭 찾아봐야겠다!

 

 

 

 

References

 

 

 

Prettier · Opinionated Code Formatter

Opinionated Code Formatter

prettier.io

 

https://velog.io/@njh7799/Eslint-Prettier-%EC%84%A4%EC%A0%95-%EB%B0%A9%EB%B2%95