ESLint 를 사용하여 자동화하기
Youngbin Han (sukso96100@gmail.com)
규칙을 좀 미리 정하자
안 그러면 나중에
분명히 옆 사진속의
사람들 처럼 싸운다.
# npm 사용하여 global 모듈로 설치
npm install -g eslint
# npm 사용하여 devDependencies 로 설치
npm install --save-dev eslint
# yarn 사용하여 global 모듈로 설치
yarn global add eslint
# yarn 사용하여 devDependencies 로 설치
yarn add --dev eslint
# global 모듈로 설치한 경우
eslint --init
# devDependencies 로 설치한 경우
./node_modules/.bin/eslint --init
? How would you like to configure ESLint? Answer questions about your style
? Are you using ECMAScript 6 features? Yes
? Are you using ES6 modules? No
? Where will your code run? Node
? Do you use JSX? No
? What style of indentation do you use? Tabs
? What quotes do you use for strings? Double
? What line endings do you use? Unix
? Do you require semicolons? Yes
? What format do you want your config file to be in? YAML
Successfully created .eslintrc.yml file in /Users/youngbin/projects/skhu-backend
env:
es6: true
node: true
extends: 'eslint:recommended'
rules:
indent:
- error
- tab
linebreak-style:
- error
- unix
quotes:
- error
- double
semi:
- error
- always
env - ESLint 전역환경 값
extends - 기반으로 쓸 설정셋
rules - 코드 검사에 쓸 규칙
# eslint 파일1 파일2 ... [명령줄 옵션]
eslint app.js routes/*
# eslint 파일1 파일2 ... [명령줄 옵션] + 자동수정
eslint app.js routes/* --fix
{
...
"scripts": {
...
"lint": "eslint *.js src/*",
"lint-fix": "eslint *.js src/* --fix"
},
...
}
# 코드 검사 - npm
npm run lint
# 코드 검사 및 자동 수정 - npm
npm run lint-fix
# 코드 검사 - yarn
yarn run lint
# 코드 검사 및 자동 수정 - yarn
yarn run lint-fix
language: node_js # 언어는 Node.js 로
node_js:
- "10" # 버전은 10.x
install: # 스크립트 실행 전 설치 작업
- npm install # 스크립트 실행 전 의존성 설치
script: # CI 본 스크립트
- npm run lint # package.json 에 정의해 둔 lint 명령 실행
image: node:latest # Docker Hub 의 node:latest 이미지 환경 기반으로 실행
lint: # lint 라는 작업 정의
before_script: # 스크립트 실행 전 작업
- npm install -g yarn # yarn 설치
- yarn install # yarn 으로 의존성 설치
script: # lint 작업의 CI 본 스크립트
- yarn run lint # package.json 에 정의해 둔 lint 명령 실행
# Yarn 사용시
yarn add --dev prettier eslint-plugin-prettier
# npm 사용시
npm install --save-dev prettier eslint-plugin-prettier
...
plugins:
- prettier
rules:
...
prettier/prettier:
- error
...
...