
.prettierrc 라는 파일이 생기는 데, 이는 단순한 설정파일이고 해당 설정파일을 각각의 IDE에서 적용해야 하는 것이다. ESLint는 정적 분석 도구이다. 자바스크립트 코드에서 문법적 오류와 잠재적 버그를 식별하는 도구이다. 코드 포멧팅, 코드 규칙 강제를 통해 ESLint는 팀 내에서 설정된 코딩 규칙을 강제하여, 일관된 코드 스타일을 유지하게끔 도와준다. 이로써 코드의 품질을 보장하고, 개발자가 실수로 발생할 수 있는 일반적인 오류를 사전에 발견하도록 돕는다. ESLint 는 이 과정에서 Prettier의 역할인 정렬 또한 도와주려 하는데, 뭣모르고 두가지 전부 다 사용하는 경우에는 이 둘이 충돌날 수 있다. ESLint 설정 에서 Prettier에게 코드 포멧을 위임시킨다는 설정을 통해서 충돌을 방지해야한다.Vite 와 같은 통합 번들러를 사용하는 경우라면, ESLint와 Prettier 의 역할이 겹쳐서 교통 정릴르 해줬던 것처럼 동일하게 Vite 내에서의 설정을 통해, 충돌이 나지 않도록 plugin을 등록해줘야 한다.ESLint와 Prettier는 자바스크립트 및 기타 웹 개발 환경에서 코드 품질과 스타일을 유지하기 위해 널리 사용되는 도구입니다. 그러나 두 도구는 서로 다른 역할을 수행하며, 함께 사용될 때 시너지를 발휘하지만, 일부 그 역할이 겹쳐 주의해야하기도 합니다.
ESLint와 Prettier는 각기 다른 목적을 가지고 있지만, 함께 사용될 때 더 큰 효과를 발휘합니다. ESLint가 코드의 품질을 관리하고, Prettier가 스타일을 일관되게 유지함으로써 개발자는 더 깔끔하고 오류 없는 코드를 작성할 수 있습니다.
eslint-config-prettier 패키지를 사용하여 ESLint에서 Prettier와 충돌하는 규칙을 비활성화해야 합니다.eslint-plugin-prettier를 추가하면 Prettier 규칙이 ESLint 규칙으로 통합되어, eslint --fix 명령어로 포맷팅과 린팅을 동시에 수행할 수 있습니다.결론적으로, ESLint는 코드 품질과 관련된 문제를 해결하고, Prettier는 코드 스타일을 일관되게 유지하는 데 특화되어 있습니다. 이 두 도구를 함께 사용함으로써 개발자는 보다 효율적이고 체계적인 코딩 환경을 구축할 수 있습니다.
npm install --save-dev --save-exact prettier
그리고 프로젝트 루트에 .prettierrc 파일을 만들어 코드 포멧팅의 규칙을 정의합니다.
// .prettierrc
{
"semi": true,
"singleQuote": true,
"printWidth": 80,
"tabWidth": 2,
"trailingComma": "es5"
}
그러나 ESLint와 함께 쓰는 경우 2단계를 더 설정한다.
npm install --save-dev eslint-config-prettier eslint-plugin-prettier
이후, .eslintrc에 추가한다.
{
"extends": [
"eslint:recommended",
"prettier"
],
"plugins": ["prettier"],
"rules": {
"prettier/prettier": "error"
}
}
npm install --save-dev husky lint-staged
이후 package.json에 정의
{
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.{js,jsx,ts,tsx}": "prettier --write"
}
}
핵심은 프리티어 설치와 IDE 설정만 하면 기본적인 코드 포맷팅 통일은 가능합니다. 그 외에도 ESLint 를 사용하면, 추가적인 설정을 통해 충돌을 방지할 수 있고, 이것만으로도 부족하다고 생각하여, 이중 삼중으로 방지하고 싶다면, Git Hooks를 사용해 팀의 필요에 따라 선택적으로 추가하면 됩니다.
Vite 프로젝트에서 프리티어와 ESLint를 설정하는 방법을 설명해드리겠습니다.
1. 프리티어 설치
npm install --save-dev --save-exact prettier
2. ESLint 관련 패키지 설치
npm install --save-dev vite-plugin-eslint eslint-plugin-prettier eslint-config-prettier
프리티어 설정 (.prettierrc)
{
"semi": true,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "es5",
"printWidth": 80
}
Vite 설정 내 ESLint 등록 (vite.config.js)
import { defineConfig } from 'vite';
import eslintPlugin from 'vite-plugin-eslint';
export default defineConfig({
plugins: [eslintPlugin()]
});
/**
eslintPlugin({
include: ['src/**/*.js', 'src/**/*.jsx', 'src/**/*.ts', 'src/**/*.tsx']
})
*/
// 다음과 같이 검사 범위를 src 내로 좁혀서 빌드 성능 향상까지 노려볼 수 있다. (default에도 검사 범위를 제한해준다.)
VS Code 사용자.vscode/settings.json 파일을 생성하여 다음 설정 추가[8]:
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
무시할 파일 설정 (.prettierignore)
node_modules/
dist/
이렇게 설정하면 Vite 프로젝트에서 자동으로 코드 포맷팅이 적용되며, 팀원들과 동일한 코드 스타일을 유지할 수 있습니다.
ESLint 설정에 따라, 성능이 정말 천차 만별일 수 있기에, 향후에 따로 다루도록 하겠습니다..!
💡해줘야만 한다. (.eslintrc.json 추가 및 적용)
{
"extends": [
"eslint:recommended",
"prettier"
],
"plugins": ["prettier"],
"rules": {
"prettier/prettier": "error"
},
"env": {
"browser": true,
"es2021": true,
"node": true
},
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module"
}
}
Vite (개발 환경)
↓
ESLint (코드 품질 검사)
↓
Prettier (코드 스타일 포맷팅)
작동 순서
이렇게 각 도구가 계층적으로 연결되어 있어서, 상위 도구의 설정이 하위 도구에 영향을 미치게 된다고 생각하면 됩니다.