npm init -y
로 package.json
파일 생성npm i -D typescript @babel/core @babel/preset-env @babel/preset-typescript @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint prettier eslint-plugin-prettier
// package.json
{
"name": "project",
"version": "1.0.0",
"description": "실습 프로젝트",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "tsc"
},
"author": "",
"license": "ISC",
"devDependencies": {
"@babel/core": "^7.19.3",
"@babel/preset-env": "^7.19.3",
"@babel/preset-typescript": "^7.18.6",
"@typescript-eslint/eslint-plugin": "^5.39.0",
"@typescript-eslint/parser": "^5.39.0",
"eslint": "^8.24.0",
"eslint-plugin-prettier": "^4.2.1",
"prettier": "^2.7.1",
"typescript": "^4.8.4"
}
}
// .eslintrc.js
module.exports = {
// 기본 옵션
root: true,
env: {
browser: true,
node: true,
},
extends: [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
],
plugins: ["prettier", "@typescript-eslint"],
// 프리티어 설정
rules: {
"prettier/prettier": [
"error",
{
singleQuote: true,
semi: true,
useTabs: false,
tabWidth: 2,
printWidth: 80,
bracketSpacing: true,
arrowParens: "avoid",
},
],
},
parserOptions: {
parser: "@typescript-eslint/parser",
},
};
코드 포맷터인데 개인의 취향대로 설정할 수 있음
팀 단위 코딩 컨벤션을 만들어서 적용할때 많이 사용됨
충돌을 막기위해 .prettierrc가 아닌 .eslintrc.js에서 프리티어 룰을 설정
// .eslintrc.js
module.exports = {
// 기본 옵션
root: true,
env: {
browser: true,
node: true,
},
extends: [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
],
plugins: ["prettier", "@typescript-eslint"],
// 프리티어 설정
rules: {
"prettier/prettier": [
"error",
{
singleQuote: true,
semi: true,
useTabs: false,
tabWidth: 2,
printWidth: 80,
bracketSpacing: true,
arrowParens: "avoid",
},
],
},
parserOptions: {
parser: "@typescript-eslint/parser",
},
};
// .eslintignore
node_modules
ctrl
+ shift
+ p
/ cmd
+ shift
+ p
키를 이용하여 명령어 실행 창 표시open settings (json)
입력 후 선택settings.json
파일의 내용에 아래와 같이 ESLint 플러그인 관련 설정 추가.{
// ... <-- 기존 내용을 꼭 유지한 상태에서 아래 내용을 추가하고 이 주석은 제거할 것
// 저장 시 코드 포맷팅
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
// eslint 상태를 항상 보여줌
"eslint.alwaysShowStatus": true,
// eslint 코드가 있는 디렉터리에 쫒아가서 밸리데이션 할 수 있게끔 해줌
"eslint.workingDirectories": [
{"mode": "auto"}
],
"eslint.validate": [
"javascript",
"typescript"
],
}
ctrl
+ ,
또는 cmd
+ ,
눌러서 VSCode 설정 파일(Settings)에 들어간 후 format on save
검색. 체크가 안되어 있는지 확인. 체크되어있으면 해제.