-
[JavaScript] ESLint와 Prettier 설치 및 설정웹 개발/JavaScript 2021. 4. 29. 15:32반응형
자바는 정적 컴파일을 하지 않은 인터프리터 언어이다.
따라서 에러 찾기가 힘들고, 에러를 해결하지 않은 채 배포할 가능성이 있다고 한다.
자바 스크립트를 사용하는 첫 협업 프로젝트라
이를 해결하기 위해 eslint와 prettier를 사용해보았다.
EsLint는 자바스크립트 문법에서 에러를 표시해준다 (flutter의 linter와 같은 개념인 듯 하다.)
Prettier는 코드스타일을 자동으로 formatting 해준다.
** CRA(create-react-app)에는 이미 세팅이 되어있다고 한다 **
1. eslint 설치 및 설정
1) ESLint 확장기능 설치
vs code의 개발단에서도 사용할 수 있도록 VS code에 ESLint 라이브러리를 통합한다.
2) ESLint 설치
- 프로젝트에 설치 (앱을 구동시킬 때 사용)
npm install eslint --save
./node_modules 디렉토리 내 패키지 설치
/package.json 의 dependencies 에 추가
- dev 버전에만 설치 (개발시에만 사용)
npm install eslint --save -dev
./node_modules 디렉토리 내 패키지 설치
/package.json 의 devDependencies 에 추가
3) ESLint 초기설정
command pallete를 연 후에 create-Eslint-configuration을 입력하여
ESLint를 초기설정하면 아래와 같이 eslintrc.json 파일이 생성된다.
자신의 필요에 따라 수정하면 된다.
ESLint 설정 구성 참고자료
(블로그)
velog.io/@kyusung/eslint-config-2
(공식문서)
eslint.org/docs/user-guide/configuring/#specifying-environments[eslintrc.json]
{ "env": { "browser": true, "es6": true, "node": true }, "parser": "babel-eslint", "extends": [ "eslint:recommended", "plugin:react/recommended", "airbnb", "plugin:prettier/recommended" ], "settings": { "react": { "version": "detect" } }, "parserOptions": { "ecmaFeatures": { "jsx": true }, "ecmaVersion": 2018, "sourceType": "module" }, "plugins": [ "react", "react-hooks", "prettier" ], "rules": { "react/react-in-jsx-scope": 0, "react/prefer-stateless-function": 0, "react/jsx-filename-extension": 0, "react/jsx-one-expression-per-line": 0, "no-nested-ternary": 0 }, "globals": { "React": "writable" } }
2. Prettier 설치 및 설정
prettier와 eslint는 모두 코드 포멧을 수정하지만
연동되는 것이 아니라 순차적으로 진행되기 때문에 상충되는 부분이 있다.
이런 부분에 대해 Lint 오류가 발생할 수 있으니 주의해야한다.
1) Prettier 설치
eslint-plugin-prettier: Prettier를 ESLint의 플러그인으로 추가하는 명령어이다. 이 것만 사용한다면 eslint formatting rules와 prettier rules가 충돌할 수 있다.
eslint-config-prettier : Prettier 규칙을 ESLint에 통합하여 prettier와 상충되는 eslint 설정을 비활성화 한다.
ESLint 는 자바스크립트 문법을 담당하고, 코드 스타일 정리는 Prettier 가 담당하는 방식이다.
npm install --save-dev eslint-plugin-prettier eslint-config-prettier
2) Prettier 설정
어떤 prettier의 rule을 사용할 지 설정해야한다.
이를 위한 여러 방법이 있는데,
- settings.json(VS code 기본 설정)에서 prettier를 설정한다.
- .prettierrc 파일에서 설정(prettier의 포맷을 적용하기 위한 설정파일)
- Prettier 패키지 설치 후 CLI를 사용한다.
[settings.json]
{ //기본 포멧팅 설정 "editor.defaultFormatter": "esbenp.prettier-vscode", "[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" } //자동포멧팅 "editor.codeActionsOnSave": { "source.fixAll.eslint": true, }, "editor.formatOnSave": false, }
위의 코드에서는 자동 저장 기능(formatOnSave) 을 비활성화 하고
저장 시에만 codeActionsOnSave으로 자동 포멧팅 수정되도록 한다.https://code.visualstudio.com/docs/editor/codebasics
기본 포멧팅 이외에 설정가능한 요소들
prettier.arrowParens
prettier.bracketSpacing
prettier.endOfLine
prettier.htmlWhitespaceSensitivity
prettier.insertPragma
prettier.jsxBracketSameLine
prettier.jsxSingleQuote
prettier.printWidth
prettier.proseWrap
prettier.quoteProps
prettier.requirePragma
prettier.semi
prettier.singleQuote
prettier.tabWidth
prettier.trailingComma
prettier.useTabs
prettier.vueIndentScriptAndStylesettings.json 여는 법
Code - Preference - Settings 후 상단 오른 쪽에 {} 혹은 문서 표시를 클릭한다.** 하지만 아직 언어가 익숙하지 않다보니
어떻게 설정하는지만 익혀놓고 추후 필요한 포멧팅을 설정해야겠다는 생각이 들었다.
[출처]
반응형'웹 개발 > JavaScript' 카테고리의 다른 글
[TS] 타입스크립트 이해하기 (0) 2022.03.29 [JavaScript] 객체 비 구조화 할당 (0) 2021.05.14 [JavaScript] Hoisting 현상이란 (0) 2021.05.07 [JavaScript] DOM 이벤트 함수 사용 및 원리 (0) 2021.04.27 [Java Script] DOM (Document object module)이란? (0) 2021.04.27