ESLint는 자바스크립트 소스의 문법검사기이다. 문법에 대한 여러 환경설정이 가능하고, 다른 개발자들이 사용하는 환경설정을 불러와 사용할 수 있다.
Prettier는 코드를 자동으로 정리해주는 프로그램으로, 코드 정리 규칙을 설정할 수 있다.
이 두 프로그램을 합치게 되면, ESLint에서 정한 환경설정에 따르는 코드로 Prettier를 사용해 자동으로 코드 문법을 정리해주게 만들 수 있다.
우리는 대부분의 자바스크립트 개발 규칙을 airbnb 사의 규칙을 인용하여 사용한다. eslint 는 역시나! airbnb의 코드스타일 환경설정을 불러올 수 있도록 되어있다!
유튜브도 하는 개발자 wesbos→ 형님이 올려주신 github→ 를 참고하면 더욱 쉽게 환경을 구축할 수 있다.
npm은 (Nodejs Package Manager) 의 약자로, npm은 Node.js로 만들어진 모듈을 웹에서 받아서 설치하고 관리해주는 프로그램으로, 단 몇 줄의 명령어로 기존에 공개된 모듈들을 설치하고, 활용할 수 있다.
우리가 사용할 prettier, eslint 역시 npm 을 통해서 다운로드하여 사용할 것이다. 먼저, npm init을 통해 package.json 을 생성한다.
npm init -y
init을 하게 되면, package.json 이 생성되고, 이 파일안에서 모든 라이브러리가 관리된다.
그러고 난 후, eslint 와 prettier 를 엮은 wesbos 형님의 eslint config를 설치하고, 그에 동반되는 라이브러리 목록까지 모두 받아 설치하는 명령을 실행한다.
npx install-peerdeps --dev eslint-config-wesbos
그런 다음, dev 환경으로 설정하고자 하는 폴더에서 .eslintrc
파일을 만들고 그 안을 이렇게 채운다.
{
"extends": [
"wesbos"
]
}
하나의 팁은, 이 설정을 package.json
파일 안에서도 할 수 있다는 것이다. "eslintConfig"
프로퍼티의 값에 .eslintrc
의 내용을 갖다 넣으면 된다. 이를 통해 프로젝트 폴더에 파일을 하나 줄일 수 있다.
똑같이 npx 를 통해 다운로드 받는데 –dev 를 –global로 치환한다.
npx install-peerdeps --global eslint-config-wesbos
이후 글로벌 eslint 환경설정 파일을 만들고, 위에서와 같이 채워넣는다.
on Mac → ~/.eslintrc
on Windows → C:\Users\username\.eslintrc
.eslintrc 파일 또는 package.json 의 eslintConfig
프로퍼티의 값을 수정함으로써 문법 룰을 수정할 수 있다. rules
프로퍼티 안에 prettier/prettier 프로퍼티의 값을 수정하면 prettier 환경설정도 가능하다.
{
"extends": [
"wesbos"
],
"rules": {
"no-console": 2,
"prettier/prettier": [
"error",
{
"trailingComma": "es5",
"singleQuote": true,
"printWidth": 120,
"tabWidth": 2,
}
]
}
}
VScode 확장프로그램 ESLint 를 설치한다. 이후 vscode 셋팅(탭상에서 File → Preference → Settings) 에서 우측 상단의 {} 표시를 누른 후 열린 setting.json 파일을 다음과 같이 설정한다.
"editor.formatOnSave": true,
"[javascript]": {
"editor.formatOnSave": false,
"editor.tabSize": 2
},
"[javascriptreact]": {
"editor.formatOnSave": false,
"editor.tabSize": 2
},
"eslint.autoFixOnSave": true,
"prettier.disableLanguages": ["javascript", "javascriptreact"],
맨 아래의 "prettier.disableLanguages"
프로퍼티의 경우 prettier 확장프로그램을 깔고 사용하고 있던 경우면서, css, html 에 적용하고 있던 경우에 javascript와 javascriptreact 언어에 대해서 적용을 하지 않겠다는 뜻이다.(eslint 와 연동된 prettier(vscode 확장프로그램이 아닌 npm run으로 사용하는 프로그램) 를 사용하기 때문에).
이 작업을 마치면 vscode 에서 작업하며 저장을 할 때 마다 eslint 와 prettier 가 설정한 문법에 맞도록 코드를 수정해준다.
저자 : 강화수 (hwasurr)