본문 바로가기
Develop

Node.js에서 (punycode) DeprecationWarning 해결하기(node 버전 다운그레이드)

by hongreat 2024. 9. 15.

 

 

 

NextJS build or run 하는 시점에서 Node.js가 JavaScript 파일을 실행할 때 다음과 같은 경고가 메세지를 내려보내기 시작했습니다.

 

 

url-js 의 punycode 관련 에러입니다.

punycode dependency 를 해결한 url-js-replace라는 대체수단으로 사용해보려 했으나, 규모가 작고 빌드업이 잘 될지 모르겠습니다.

노드버전을 다운그레이드 하는 방식을 택했습니다.

 

 

(node:5649) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
 
 
 
 

이 경고는 Node.js의 최신 버전에서 더 이상 punycode 모듈을 사용하지 않기 때문에 발생합니다.

 

이 문제를 해결하기 위해 안정적인 Node.js 18 버전으로 다운그레이드하는 방법을기록합니다.

 

환경

  • MacOS m1 - homebrew
  • target node version -> v18.20.4

 

 

 

 

목차

     

     

    1. 현재 Node.js 버전 확인

    터미널에서 다음 명령어를 실행해 현재 설치된 Node.js 버전을 확인합니다:

     

    node -v​
     

    최신 버전(예: 22버전)이 설치되어 있다면, 이를 안정적인 18 버전으로 변경합니다.

     

     

    2. Homebrew를 이용해 Node.js 18 설치

     

     

    Homebrew로 Node.js의 다양한 버전을 확인한 후, 18 버전을 설치합니다

     
    brew search node 
    brew install node@18
     
     
     
     

    3. Node.js 버전 변경

     

    설치가 완료되면 기존 Node.js를 언링크하고, 새로 설치한 18 버전으로 링크합니다

     
    brew unlink node 
    brew link --overwrite node@18
     

     

    3.1 링크 상태 확인하기

    brew link -v node

     

    node -v 로도 확인 할 수 있지만, 위 명령어를 통해 nvm 이 아닌 brew 로 관리되는 node 가 어떤 node 버전과 연결되어있는지 확실하게 확인할 수 있습니다.

     

    확인이 되면 아래처럼 출력됩니다.

     

    Warning: Already linked: /opt/homebrew/Cellar/node/22.8.0
    To relink, run:
      brew unlink node && brew link node

     

    아래는 참고한 레퍼런스 입니다.

     

     

     

    https://github.com/garycourt/uri-js/pull/95

     

    https://github.com/andreinwald/uri-js-replace

     

    https://github.com/ajv-validator/ajv/issues/2343