[npm] 디펜던시 에러 해결하기

acho·2024년 8월 12일

배경

사용하지 않는 import문을 자동 삭제하도록 설정하기 위해 eslint-plugin-unused-imports 플러그인을 설치하는 중

아래와 같은 dependency 에러가 발생했다.

🧐 문제 원인

  • @typescript-eslint/eslint-plugin@6.21.0 은 eslint ^7.0.0 또는 ^8.0.0 버전과 호환된다.
    • ^ 기호는 해당 버전 이상, 다음 메이저 업데이트 이전까지의 모든 버전을 의미한다. 즉 7.x.x 버전과 8.x.x버전과 모두 호환된다.
  • 새로 설치하려는 패키지인 eslint-plugin-unused-imports@4.0.0는 eslint 9 버전을 필요로 한다.

✅ 해결 방안

eslint 9 버전으로 업그레이드하거나, eslint-plugin-unused-imports 플러그인의 구버전(eslint8 버전을 의존성으로 갖는)을 서치해서 있다면 버전을 내려야 한다.

최신 버전으로 업그레이드 하는 게 더 나은 방향인 것 같아, 현재 설치된 패키지 중 eslint를 의존성으로 갖는 패키지들이 eslint9 버전을 지원하는지 찾아보았다.

패키지 설치 전 해당 패키지의 dependency 버전 확인하는 명령어

npm view [패키지명@버전] peerDependencies

ex) 
npm view eslint-plugin-unused-imports@3.2.0 peerDependencies

eslint 9 업그레이드 가능 여부 검토

패키지eslint 9 지원여부버전eslint 디펜던시그 외 디펜던시기타
@typescript-eslint/eslint-plugino8.0.0-alpha.10^8.57.0^9.0.0
@typescript-eslint/parsero8.0.0-alpha.30^8.57.0^9.0.0'
eslint-config-prettiero현재 버전
9.1.0>=7.0.0x
eslint-plugin-importxxxx2.29.1이 가장 최신 버전인데 eslint 9 버전 지원 안함

eslint-plugin-import 가 eslint9 버전을 지원하지 않아 eslint를 9로 업그레이드하면 또 다른 디펜던시 오류가 발생할 것으로 보인다.

eslint-plugin-unused-import 패키지 버전 다운 가능 여부 검토

대안으로 eslint-plugin-unused-import의 버전 중 eslint 8.57.0 버전을 지원하는 버전이 있는지 찾아보았다.

최신 버전의 바로 전 버전인 3.2.0 버전이 eslint 8을 지원한다:


acho@hoyunMac backend % npm view eslint-plugin-unused-imports@3.2.0 peerDependencies
{ '@typescript-eslint/eslint-plugin': '6 - 7', eslint: '8' }

eslint-plugin-unused-imports@3.2.0 버전을 dev 디펜던시로 인스톨했다.

npm install eslint-plugin-unused-imports@3.2.0 --save-dev

0개의 댓글