Notice
Recent Posts
Recent Comments
Link
«   2024/03   »
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
Tags
more
Archives
Today
Total
관리 메뉴

coding etude

[typescript React] ESlint config setting 본문

TypeScript TIL

[typescript React] ESlint config setting

코코리니 2021. 2. 1. 23:47

TS의 기본적인 문법을 공부하고서, 자!! 이제 React에 적용해보자!! ....두둥.. error..

TS를 사용하기 위해서 설치한 TSlint에서 날 통과 시켜주지 않는 것이였다..

이것 저것.. 검색을 해본 결과.. 정확하고 속시원하게 알려주는 내용은 없었다. 물론, 내가 못 찾았거나 보고도 이해 못한 내용이였거니 생각하니... 더 답답했다.

그러던 중, ESlint까지 내용이 이어졌는데.. typescript-ESlint Github 를 보고 잊지 않기 위해 끄적끄적...

먼저, typescript-ESlint Github에 따르면 TSlint는 2019년에 더이상 개발을 지원하지 않겠다고 선언했다고 한다. ESlint에서 TS를 지원하기 시작해서 불필요 하다고 생각했기 때문이다. 또한, typescrip 를 개발한 MS에서도 typescript-ESlint 를 적극 수용하겠다고도 한다.

그래서 여러 사이트에서 설치하라고 했던 TSlint를 과감하게 삭제하고 ESlint를 설치했다.

지금부터 typescript-ESlint Github에 나와있는 내용을 정리해 본다.

 

1.설치

$ yarn add -D eslint typescript @typescript-eslint/parser @typescript-eslint/eslint-plugin
$ npm i --save-dev eslint typescript @typescript-eslint/parser @typescript-eslint/eslint-plugin

eslint, typescript 는 기본적으로 설치해주면 된다. 나머지 두 가지에 대해 알아보자.

@typescript-eslint/parser : TS로 입력한 값을 lint가 이해 하도록 변환해 주는 역할을 한다.

@typescript-eslint/eslint-plugin : lint에서 plugin을 사용 할 수 있도록 해준다.

 

2. 설정

설치가 완료되면 .eslintrc.js 파일을 생성해서 다음의 내용을 복붙 하라고 나와 있다.

많은 설정값과 plugin을 추가 할 수 있지만 정말 최소한의 설정을 넣은 것이라고 설명 되어 있다.

module.exports = {
  root: true,
  parser: '@typescript-eslint/parser',
  plugins: [
    '@typescript-eslint',
  ],
  extends: [
    'eslint:recommended',
    'plugin:@typescript-eslint/recommended',
  ],
};

 정확한 내용은 아니지만 eslint를 제외하고 추가적으로 사용 해야하는 프로그램을 plugins 에 추가해주고 그에 대한 규칙을 extends 에 추가해 주는데 그 값을 권장값으로 설정해 주는 것 같다. 

 

3. eslintignore 생성

# don't ever lint node_modules
node_modules
# don't lint build output (make sure it's set to your correct build folder name)
dist
# don't lint nyc coverage output
coverage

.eslintignore 파일을 생성하고 eslint 가 적용되지 않을 내용을 추가해 준다.

 

4. lint 실행하기 

$ yarn eslint . --ext .js,.jsx,.ts,.tsx

$ npx eslint . --ext .js,.jsx,.ts,.tsx

프로잭트의 루트에서 다음을 실행해서 적용가능한 확장자를 추가해주면 된다고 간단하게 나와있으나 실행 시 module를 찾을 수 없다는 에러가 나온다.. 이 부분은 조금 더 알아 보도록 하자.

 

5. 그 외

기본설정에서 추가적으로 config package 가 있다고 나와있고 plugin에 추가해서 사용이 가능하다고 한다.

//Airbnb's ESLint config 
eslint-config-airbnb-typescript.
//Standard
eslint-config-standard-with-typescript.

 지금까지의 내용은 아래 링크에서 나온 내용을 축약한 내용이고 정말 구동을 위한 최소한의 설정값이다.
더 자세한 사항은 직접 들어가서 보는 것을 추천한다. 아직 뒤에.. 더 많은 내용이 남아 있다.

 

typescript eslint github :
github.com/typescript-eslint/typescript-eslint/blob/master/docs/getting-started/linting/README.md 

 

typescript eslint에서 가능한 설정값 예시:

github.com/typescript-eslint/typescript-eslint/blob/master/.eslintrc.js 

(위 링크는 typescript eslint github 의 내용을 따라가다 보면 자동으로 연결이 되겠지만, 혹시 찾지 못한 분들을 위해 남깁니다.)

'TypeScript TIL' 카테고리의 다른 글

[typescript] missing in prop validation react/prop-types error  (0) 2021.02.07
[TYPESCRIPT] interface  (0) 2021.01.14
[TYPESCRIPT] 기본타입  (0) 2021.01.12