- Published on
Prettier
Prettier
- ESLint과 포맷팅이 겹치는 부분이 있으나, 더 직관적인 스타일을 제공
- 한가지 차이점은
코드 품질
과 관련된 기능은 하지 않음
설치 및 적용
설치
$ npm install -D prettier
적용
app.js
console.log()
- 해당 파일에 console.log를 호출하는 코드를 작성
검증
$ npx prettier app.js --write
--write
옵션을 줄 경우, ESLint의--fix
옵션처럼 수정을 진행
강점
console.log(
'----------------------매 우 긴 문 장 입 니 다 80자가 넘 는 코 드 입 니 다.----------------------'
)
- 에디터상의 가독성이 떨어지는 코드는 다음과 같이 포맷팅을 적용함
console.log(
'----------------------매 우 긴 문 장 입 니 다 80자가 넘 는 코 드 입 니 다.----------------------'
)
- 80자가 넘어가는 코드를 보다 읽기 쉬운 코드로 수정해줌
- prettier가 포맷팅은 더 강력할지 몰라도, ESLint의 코드 품질 개선 기능을 포함하고 있지 않으므로 지원하는 통합 방법을 사용
통합 방법
- ESLint는 앞서 설명한 것 처럼, 코드 품질과 관련된 검사를 지원하므로 둘을 같이 사용하는 방법을 권장함
- 다만 Prettier와 충돌하는 규칙을 상호간의 점검해야 하는데,
eslint-config-prettier
패키지를 통해 잠재적인 충돌 오류를 방지해야 함
eslint-config-prettier
설치
$ npm install -D eslint-config-prettier
eslint-config-prettier
적용
.eslintrc.js
{
module.exports = {
extends: ['eslint:recommended', 'eslint-config-prettier'],
}
}
- eslint init한 파일에서 extends 부분에
eslint-config-prettier
를 추가 eslint:recommended
규칙 중에 configuration이 prettier와 겹치는 부분 OFF하는 기능을 제공
예제
app.js
var foo = ''
console.log()
var foo = '';
- 사용하지 않는 코드이므로,
코드 품질
사유에 해당하고 ESLint가 간섭
- 사용하지 않는 코드이므로,
console.log();;;;;;;
- 불필요한 세미콜론이므로,
포맷팅
사유에 해당하고 ESLint와 Prettier가 간섭 - 충돌을 방지하는 eslint-config-prettier가 정상적으로 동작하는지 확인
- 불필요한 세미콜론이므로,
$ npx eslint app.js --fix # eslint
$ npx prettier app.js --write # prettier
- 위와 같이 각각 개별로 실행하지 않고, 통합해서 실행할 수 있는 command가 필요한 시점
eslint-plugin-prettier
설치
$ npm install -D eslint-plugin-prettier
eslint-plugin-prettier
적용
.eslintrc.js
module.exports = {
plugins: ['prettier'],
rules: {
'prettier/prettier': 'error',
},
}
- 설정 파일에서 plugins와 rules에 설정을 추가
실행
$ npx eslint app.js --fix
- Prettier의 포맷팅 규칙을 가져와서 ESLint만 실행해도 Prettier가 적용됨
단순한 설정
{
modules.export = {
extends: ['eslint:recommended', 'plugin:prettier/recommended'],
}
}
- Prettier는 두 패키지를 함께 사용하는 단순한 설정을 제공하는데, 위의 설정을 추가할 수 있음
Referenced