Vite로 구성한 React Project에 eslint 설정하기
CRA와 다르게 vite는 eslint가 기본설치 되지 않으므로 필요 모듈 설치 및 config작성을 따로 해줘야 한다.
vite로 react proejct 생성
생각보다 간단하다
1 | $ npm create vite@latest |
명령어를 입력하고 나면 다음 이미지처럼 나오는데 키보드로 이동해 선택 해서 만들면 끝
eslint 설치
프로젝트 생성후 package.json
프로젝트 구성이 되고나면 eslint를 설치 해준다.
1 | $ yarn add eslint -D |
eslint를 설치한후 터미널에서 다음 명령어를 입력하면
1 | $ npx eslint --init |
- How would you like to use ESLint? ESLint를 어디에 사용할거니?
- What type of modules does your project use? 플젝에서 어떤 타입의 모듈을 사용할거야?
- Which framework does your project use? 프레임워크 뭐 사용해?
- Does your project use TypeScript? TS 사용할거야?
- Where does your code run? 코드 어디서 실행 시킬거야?
- What format do you want your config file to be in? 파일 포맷 어떤걸로 할거야?
- Would you like to install them now ? 지금 이것들 설치 할거야?
eslint-plugin-react@latest@typescript-eslint/eslint-plugin@latest@typescript-eslint/parser@latest - Which package manager do you want to use? 어떤 패키지 매니저 사용할거야?
모든 선택을 하고 나면 패키지 설치 Yes 시 패키지 설치와 함께 eslintrc.cjs 파일도 생성 된다.
그런데 eslintrc.cjs 파일을 보면 에러가 뜨는데
node 환경을 추가해주거나
overrides에 cjs파일만 node환경을 추가 해줄 수 있다.
1 | module.exports = { |
1 | module.exports = { |
그럼 error가 사라진다.
rules에 rule을 추가하고 lint에 맞게 코드 작성을 하면 끝!
vite test library 설치
👉 공식문서
1 | $ yarn add vitest -D |
package.json에 test scirpt를 작성해준다
1 | { |
vite.config.ts에 test 부분을 작성해준다 이때 주의점이reference 부분 역시 꼭 작성해주어야 한다.
👉 참고 Git
1 | /// <reference types="vitest" /> |
environment에 jsdom이 사용되었는데
React Testing Library는 React 구성 요소를 테스트하므로 jsdom과 같은 라이브러리를 사용하여 Vitest에서 HTML을 활성화해야 합니다.
jsdom을 설치하고 나머지 필요 라이브러리 @testing-library/react @testing-library/jest-dom 도 같이 설치해주자
1 | $ yarn add jsdom @testing-library/react @testing-library/jest-dom -D |
그담 src하위에 setup파일(여기서는 setupTests.ts)을 만들고 설정을 추가해준다.
1 | import matchers from "@testing-library/jest-dom/matchers" |
그리고 간단한 테스트를 위해 src하위에 pages를 만들고 pages안에 test디렉토리를 만들어 테스트코드를 작성해 보았다.
1 | // ../src/pages/test/Page.test.tsx |
eslint 와 testing-library 같이 사용하기
eslint와 test라이브러리를 같이 사용하기 위해 필요한 모듈을 설치해준다.
1 | $ yarn add eslint-plugin-jest-dom eslint-plugin-testing-library -D |
eslintrc에서 plugins와 extends에 추가로 작성해준다
1 | module.exports = { |
vscode extension에서 Eslint도 같이 설치 해주어야 한다.
프로젝트 단위로 설정을 하려면 프로젝트 최상단 루트에서 .vsvode디렉토리를 생성후 setting.json에 작성해준다
프로젝트 최상단
1 | { |
아니면 vscode 설정에다 작성해주어도 상관없다.
그리고나서 testcode를 일부러 틀리게 작성한후 저장해보면
자동으로 fix가 된다. 😸
이제 test code 작성법을 공부만 하면 된다..😂