custom eslint config 분리하기
2024.09.250 views
프로젝트를 모노레포로 변경하면서 공통으로 config를 관리하도록 리팩토링한 경험을 정리한다.
설정방법#
packages/eslint-config
디렉토리에 package.json
을 만들고 각 프로젝트마다 개별로 사용하던 eslint 관련 패키지를 devDependencies로 이주한다.
나는 프로젝트 규모가 크지 않고 next.js만 사용하기 때문에 index.js로 eslint를 구성했지만, 각 프로젝트 별 프레임워크에 따라 파일을 분리하여 아래와 같이 작성할 수 있다.
다음으로 사용하고자 하는 프로젝트에 workspace 의존성을 devDependencies에 설치한다. 나는 pnpm을 사용하므로 아래와 같이 설치했다.
그리고 .eslintrc.json, .eslintrc.js, .eslint.config.js 등등 원하는 형태로 config 파일을 생성한 후 extends
로 넣어준다.
트러블슈팅#
다른 프로젝트에서 공통 config를 extend 할 때 다음과 같은 오류가 발생했다.
서칭을 해보니 eslint-config로 시작하는 패키지를 extend 할 수 있도록 네이밍컨벤션이 생겨서 발생한 이슈였다.
또한 custom eslint 프로젝트엔 린트가 적용되지 않도록 프로젝트 최상단에 .eslintignore
파일을 추가해서 아래 값을 넣어두었다.
기본적으로 .으로 시작하는 파일이나, node_modules는 대상에 포함하지 않는다고 한다.
node_modules/
packages/eslint-config/