코드 컨벤션은 다양한 회사에서 공식 문서로 제공하고 있다.
자신에게 맞는 것을 찾아 쓰거나, 협업을 한다면 동료와 협의 후 선택하여 사용하면 된다.
우아한테크코스에서는 airbnb의 코드 컨벤션을 따른다고 한다.
eslint와 prettier은 일관된 코드를 작성하기 위해, 이를 강제하게 한다.
prettier은 포맷팅(일관된 코드)의 기능을 하며, eslint는 포맷팅, 코드품질(잠재된 오류 찾아줌)의 기능을 한다. 이 둘을 함께 사용하는 것이 좋다.
eslint는 코드품질에, prettier은 포맷팅에 사용하면 아주 찰떡궁합! 🍡
이때, 두개를 통합하여 사용해도 에러가 나타나지 않도록 prettier은 eslint와 통합해서 사용하는 것을 지원해준다.
설치는 동준님의 블랙커피 강의와, 요 링크를 참고했다.
.eslintrc
파일에 적용한 것에 어긋나면 보여준다. {
"plugins": [
"prettier"
],
"extends": [
"airbnb",
"plugin:prettier/recommended"
],
"env": {
"browser": true,
"node": true
},
"rules": {
"no-new": "off",
"no-console": "off",
"no-param-reassign": "off",
"no-alert": "off",
"no-undef": "off",
"import/extensions": "off",
"prefer-template": "off",
"max-depth": ["error", 2],
"max-lines-per-function": ["error", 15],
"eol-last": ["error", "always"]
}
}
위에 작성한 코드는 어디까지나 예시일 뿐이다!
내가 잔소리를 듣길 원하는 부분이 있으면(혹은 잔소리 듣기 싫은 부분이 있다면), "rules"부분에 따로 지정해주면 된다.
예를들어, 내가 new를 작성하더라도 잔소리를 듣고싶지 않다면, "no-new": "off"
를 rules에 삽입하면 된다.
이러한 속성들은 eslint 사이트에서 확인할 수 있다.
또한, 위에서 airbnb 코드 컨벤션으로 지정해주었기 때문에, 이 중 특정 부분을 따르고 싶지 않다면 똑같은 방식으로 rules에 추가해주면 된다.
//.prettierrc
{
"printWidth": 200,
"tabWidth": 2,
"useTabs": false,
"semi": true,
"singleQuote": true,
"trailingComma": "all",
"arrowParens": "avoid"
}
npm install eslint --save-dev
npm install prettier --save-dev --save-exact
npm install eslint-config-prettier --save-dev
: prettier, eslint를 함께 사용했을 때 충돌이 일어나지 않도록 한다.npm install eslint-plugin-prettier --save-dev
: 코드 포맷팅을 prettier로 한다.npx install-peerdeps --dev eslint-config-airbnb
.eslintrc
, .prettierrc
파일을 만든다. (위 예시코드 참고)📚 Reference