코딩/문제&에러

Inefficient Regular Expression Complexity in nth-check

춘 몽 2024. 9. 20. 21:19

git 에서 경고 이메일이 왔는데 그걸 해결하고 보니 예전에 경고왔었는데 해결하지 않았던 내용이 남아있었다.

그게 바로 

Inefficient Regular Expression Complexity in nth-check 인데, 내용은 nth-check 버전이 2.0.1 보다 낮아서 문제인거다.

 

일단 인터넷에 해결방법을 찾아보았다.

1. react-scripts를 devDependecies로 옮겨준다. => 해결 안됨.

2. package.json에

"overrides": {
    "nth-check": "2.1.1"
}

추가하기 => 해결 안됨.

 

3. 2의 방법이 nth-check의 버전을 강제로 올리는건데, 삭제하고 재 설치한 yarn.lock에 보면 낮은 버전이 그대로이길래 yarn.lock의 코드를 직접 수정했더니 해결되었다.

 

우선 yarn.lock에서 2.0.1 보다 낮은 nth-check 데이터를 삭제하고, 해당 데이터를 사용하는 곳을 2.0.1로 변경해주었다.

nth-check@^1.0.2:
  version "1.0.2"
  resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
  integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
  dependencies:
    boolbase "~1.0.0"
    
// 위의 nth-check 삭제

nth-check@^2.0.1:
  version "2.1.1"
  resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
  integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
  dependencies:
    boolbase "^1.0.0"
css-select@^2.0.0:
  version "2.1.0"
  resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef"
  integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==
  dependencies:
    boolbase "^1.0.0"
    css-what "^3.2.1"
    domutils "^1.7.0"
    nth-check "^2.0.1" // 버전 변경

css-select@^4.1.3:
  version "4.3.0"
  resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b"
  integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==
  dependencies:
    boolbase "^1.0.0"
    css-what "^6.0.1"
    domhandler "^4.3.1"
    domutils "^2.8.0"
    nth-check "^2.0.1"

 

++ 여담

사실 위 해결방법 방법으로 했다가 yarn install 하니 다시 원래대로 돌아가서, 다시 인터넷 검색을 했었다. 그렇게 찾은 방법은

{
  "resolutions": {
    "nth-check": "2.1.1"
  }
}

를 package.json에 추가하는 방법이 있었다.

해당 방법은 버전을 강제로 변경하는건데, yarn audit를 돌려보면 문제는 해결되지만, 대신에 해당 버전은 호환이 안된다는 warning 메시지가 떠서 찝찝한 마음에 다시 구글링을 했다.

 

그렇게 찾은 블로그를 보니 앞서 내가 말한 해결 방법과 똑같은 방법을 사용했고, 단지 내가 yarn install 했을 때는 원래대로 돌아갔었는데, 해당글에서는 이상 없이 잘 되었다길래 다시 시도해보고, 원래대로 돌아가서 또 다시 시도해봤는데 그 다음부터는 원래대로 돌아가지 않았다..

왜 처음과 두번, 세번째의 yarn install은 원래대로 돌아갔었는지는 의문이지만, 무튼 잘 해결 되었다.

 

그리고 똑같은 문제가 내 다른 프로젝트인 포트폴리오.v2에서도 발생하지만, git의 해당 레퍼지토리에는 아무런 문제가 잡히지 않는다..

그리고 nth-check관련 구글링을 했을때도 2022년도의 자료가 대부분인걸 보면.. 뭔가 찜찜한 에러이다.

 

아래는 다시 시도해볼 수 있도록 해준 나와 똑같은 방법을 사용한 블로그이다.

https://velog.io/@rawoon/Inefficient-Regular-Expression-Complexity-in-nth-check-in-yarn.lock

 

Inefficient Regular Expression Complexity in nth-check in yarn.lock

왜 갑자기 vulnerability 에러가...? 난 분명이 CRA 로 만들었는데 ㅠㅠ

velog.io

 

728x90