Backend
[DEP0040] DeprecationWarning: The punycode module is deprecated. Please use a userland alternative instead.
김콩콩쥐
2024. 2. 7. 23:21
오류 발생
package.json 에 dev 스크립트를 작성해서 npm run dev 를 작성했을 때
mongodb에 잘 연결은 됐지만
(node:17988) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
이런 오류가 발생한다.
원인
Node.js의 최신 버전에서 punycode
모듈은 삭제되었다는 뜻으로 이 punycode
를 지원해주는 버전으로 다운그레이드 해야한다.
해결방법
난 노드 버전 중 가장 안정적이라고 하는 18버전으로 다운그레이드하기를 선택했다.
1. 설치된 Node.js 버전 확인
% node -v
// v21.5.0
2. nvm 설치
NVM(Node Version Manager) 은 Node.js의 버전을 관리해주는 도구이다.
% brew install nvm
- mac m1의 경우
zsh: command not found: nvm
가 발생할 수 있음
% vi ~/.zshrc
// 파일 진입 후 아래 내용 추가해주기
export NVM_DIR="$HOME/.nvm"
[ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh" # This loads nvm
[ -s "/usr/local/opt/nvm/etc/bash_completion" ] && . "/usr/local/opt/nvm/etc/bash_completion" # This loads nvm bash_completion
source $(brew --prefix nvm)/nvm.sh
3. 설치 가능한 version list
% nvm ls-remote
4. 특정 버전 node.js 설치
% nvm install v{버전명}
% nvm install v18.19.0
Downloading and installing node v18.19.0...
Downloading https://nodejs.org/dist/v18.19.0/node-v18.19.0-darwin-arm64.tar.xz...
################################################################################################################################################################ 100.0%
Computing checksum with shasum -a 256
Checksums matched!
Now using node v18.19.0 (npm v10.2.3)
Creating default alias: default -> v18.19.0
default 로 잡혔지만 한 번 더 체크 해주기
% nvm use 18.19.0
% nvm alias default 18.19.0
다시 npm run dev 실행하면 위의 오류가 사라진다.