티스토리 뷰
자바스크립트
Prettier + ESLint + Airbnb Style을 package.json 변경없이 셋팅하는 방법
YG - 96년생 , 강아지 있음, 개발자 희망 2022. 12. 12. 20:26설치
1. eslint, prettier 패키지 설치
npm install -D eslint prettier
2. airbnb eslint 설정 패키지 설치
npx install-peerdeps --dev eslint-config-airbnb
3. prettier eslint 플러그인 및 설정 패키지 설치
npm install -D eslint-config-prettier eslint-plugin-prettier
- eslint-plugin-prettier: prettier 규칙을 생성하는 eslint 플러그인
- eslint-config-prettier: eslint와 prettier간 충돌나는 규칙을 비활성화해주는 eslint 설정
4. package.json 을 git discard 해주기
discard : 되돌리기 , 소스 코드에서 변경 되기 전의 코드는 남기고 변경된 부분만 되돌리기
설정 파일 작성
.eslintrc
{
"env": {
"browser": true,
"es6": true,
"node": true
},
"parserOptions": {
"ecmaVersion": "latest"
},
"extends": ["airbnb", "plugin:prettier/recommended"],
"rules": {
"prettier/prettier": ["error", { "singleQuote": true }],
"indent": ["error", 2],
"quotes": ["error", "single"],
"max-lines-per-function": ["error", 10], // 한 함수의 메서드 라인을 10줄로 제한함.
"max-depth": ["error", 2], // 들여쓰기(indent)를 2개로 제한함.
"no-else-return": ["error", { "allowElseIf": false }], // else , if else return 을 제한함.
"max-params": ["error", 3], // 함수의 매개변수 개수를 3개로 제한함.
"no-confusing-arrow": [
// 화살표 함수(=>)는 일부 비교 연산자(>, <=, >=)와 구문이 유사합니다.
//이 규칙은 비교 연산자와 혼동될 수 있는 위치에서 화살표 함수 구문을 사용하지 않도록 경고합니다.
"error",
{ "allowParens": true, "onlyOneSimpleParam": false }
],
"prefer-destructuring": [
// X : var foo = object.foo;
// O : var { foo } = object;
"error",
{
"array": true,
"object": true
},
{
"enforceForRenamedProperties": false
}
],
"spaced-comment": ["error", "always", { "exceptions": ["-", "+"] }], // 주석 사용 시 한칸 공백 생성
"eol-last": ["error", "always"] // EOL https://github.com/airbnb/javascript#whitespace--newline-at-end
}
}
ESLint 설정 페이지
https://eslint.org/docs/latest/user-guide/configuring/
.prettierrc.js
/**
* Prettier 옵션
* - https://prettier.io/docs/en/options.html
*/
module.exports = {
printWidth: 80, // 한 줄 최대 문자 수
tabWidth: 2, // 들여쓰기 시, 탭 너비
useTabs: false, // 스페이스 대신 탭 사용
semi: true, // 문장 끝 세미콜론 사용
singleQuote: true, // 작은 따옴표 사용
trailingComma: 'es5', // es5 설정 (기본값)
bracketSpacing: true, // 중괄호 내에 공백 사용
arrowParens: 'always', // https://github.com/airbnb/javascript#arrows--one-arg-parens
proseWrap: 'never', // 마크다운 포매팅 제외
endOfLine: 'auto', // 개행문자 유지 (혼합일 경우, 첫 줄 개행문자로 통일)
quoteProps: 'as-needed'
};
Prettier 옵션
https://prettier.io/docs/en/options.html
.prettierignore
node_modules/
VS Code 설정
.vscode/settings.json
prettier가 VS Code에 깔려 있지 않거나 다른 포매터를 사용 시에 이용하는 방법입니다.
특정 언어를 자동으로 포맷하지 않으려면 저장 시 포맷을 비활성화할 수 있습니다.
{
// Set the default
"editor.formatOnSave": true,
// Enable per-language
"[javascript]": {
"editor.formatOnSave": false
},
"editor.codeActionsOnSave": {
// For ESLint
"source.fixAll.eslint": true
},
"eslint.alwaysShowStatus": true,
"prettier.disableLanguages": ["js"],
"files.autoSave": "onFocusChange",
}
위치: 프로젝트 루트의 .vscode/settings.json
https://github.com/prettier/prettier-vscode#prettier-formatter-for-visual-studio-code
'자바스크립트' 카테고리의 다른 글
javascript RTS Game 에서 유닛끼리 겹쳐지지 않게 설정하기 && chatGPT의 활용 (1) | 2023.01.09 |
---|---|
javascript ERROR Handler Function 템플릿 (0) | 2022.12.16 |
[23년 업데이트] graphQL에 관하여 // graphQL 이용해보기 (0) | 2022.03.27 |
리액트 Google 로그인 기능 OAuth 만들기 소셜 로그인 (0) | 2022.03.06 |
redux 개념 알아보기 && javascript 에서 리덕스 설치 및 이용하기 (0) | 2022.02.10 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- electron
- 북클럽
- 위코드
- env
- C언어
- jest
- createPortal
- 스토리 북
- 프론트앤드
- 원티드
- 윤성우 열혈C프로그래밍
- React
- 노마드코더
- import/order
- NextRequest
- WSL2
- 우아한테크코스
- 노개북
- 초보
- error
- CLASS
- javascript
- nodejs
- 아차산
- 프리온보딩
- Storybook
- TopLayer
- NextApiRequest
- nextjs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함