정의
ESLint
ECMA로 이루어진 코드의 오류 체크, 가독성 향상(들여쓰기, 줄간격 체크) 등을 위해 사용하는 도구.
Prettier
ESLint와 달리 오류 체크는 하지 않으나 code formatting을 일관된 스타일로 고정하는 도구.
ESLint &Prettier
보통 두 가지를 함께 사용한다.
이를 통해 얻을 수 있는 이점은, 개발자의 실수로 발생하는 오류를 사전에 예방하고, 협업 시 코드 스타일을 일관되게 함으로써 가독성을 향상시킬 수 있다는 것이다.
팀 프로젝트에서는 코드 리뷰를 자주 하게 되므로 서로의 코드를 익숙하게 검토하기 위해서라도 lint와 prettier 도입은 필수적이다.
자주 사용하는 설정
NPM
// 이 2개의 경우 global 설치도 해 두면 좋다. (최초 1회만)
npm i -g eslint
npm i -g prettier
// devDependencies
npm i -D eslint
npm i -D prettier
npm i -D eslint-config-prettier // prettier와 충돌(중복)하는 eslint 설정 off
npm i -D eslint-plugin-import // plugin 적용에 필요
npm i -D eslint-plugin-prettier // eslint에 prettier 문법 플러그인 적용
npm i -D eslint-config-airbnb-base // airbnb style 적용
// 총집합
npm i -D eslint prettier eslint-config-prettier eslint-plugin-import eslint-plugin-prettier eslint-config-airbnb-base
.eslintrc 설정
FOR BE
// BE
{
"plugins": ["prettier"],
"extends": ["airbnb-base", "plugin:prettier/recommended"],
"parserOptions": {
"ecmaVersion": 12,
"sourceType": "script"
},
"env": {
"node": true,
"es6": true
},
"ignorePatterns": ["node_modules/"],
"rules": {
"prettier/prettier": "error"
}
}
FOR FE
// FE
{
"plugins": ["prettier"],
"extends": ["airbnb-base", "plugin:prettier/recommended"],
"parserOptions": {
"ecmaVersion": 12,
"sourceType": "module"
},
"env": {
"browser": true,
"es6": true,
"node": true
},
"ignorePatterns": ["node_modules/"],
"rules": {
"prettier/prettier": "error"
}
}
.prettierrc 설정
{
"singleQuote": true,
"semi": true,
"tabWidth": 2,
"trailingComma": "es5",
"endOfLine":"auto"
}
- singleQuote: 작은따옴표 사용
- semi: 세미콜론 사용
- tabWidth: 탭 간격
- trailingComma: multi line에서 코마(,)를 사용
- endOfLine: 개행 설정. windows에서 prettier를 사용할 시 crlf 오류가 발생하여 이 설정을 사용해야 한다.
.vscode > settings.json 설정
"editor.formatOnSave": false, // default
"[javascript]": {
"editor.formatOnSave": true // js는 저장 시 prettier 자동 적용
},
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true // 저장 시 eslint 자동 적용
},
vscode 확장 프로그램 설정
가장 많이 사용되는, 가장 기본적인 확장들이다.