ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Bug Fix] npm 버전 업데이트: Unsupported engine
    Front-end 개발/FE 버그 2025. 9. 10. 15:57

    npm 업데이트 터미널 에러

     

    Expo 기반으로 React Native 개발을 하다가 아래와 같이 에러와 경고가 발생했다.

    $ npm run android
    
    > threads-clone@1.0.0 android
    > expo start --android
    
    Starting project at C:\Users\jasin\Documents\code\lectures\threads-clone
    Starting Metro Bundler
    CommandError: No development build (com.morgankim.threadsclone) for this project is installed. Install a development build on the target device and try again.
    Learn more: https://docs.expo.dev/development/build/
    npm notice
    npm notice New major version of npm available! 10.7.0 -> 11.6.0
    npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.6.0
    npm notice To update run: npm install -g npm@11.6.0
    npm notice

     

    npm 버전을 올려줘야 할 때가 온 것 같다. 그런데 npm error engine Unsupported engine 이라니... npm 경고 문구대로 npm 버전을 올려주는 명령어를 쳐도 에러가 발생한다. 문제의 원인은 node에 있었다. node 버전이 낮아서 npm LTS 버전와 호환이 되지 않아서 발생하는 에러다.

    $ npm install -g npm@11.6.0
    npm error code EBADENGINE
    npm error engine Unsupported engine
    npm error engine Not compatible with your version of node/npm: npm@11.6.0
    npm error notsup Not compatible with your version of node/npm: npm@11.6.0
    npm error notsup Required: {"node":"^20.17.0 || >=22.9.0"}
    npm error notsup Actual:   {"npm":"10.7.0","node":"v20.15.0"}
    
    npm error A complete log of this run can be found in: C:\Users\jasin\AppData\Local\npm-cache\_logs\2025-09-10T06_34_48_992Z-debug-0.log

     

    나는 이전에 node 버전을 올려줄 때마다 설치파일을 공식 홈페이지에서 다운받는게 귀찮아서 node 버전 관리자 프로그램을 설치해서 사용하고 있다. 바로 nvm 이다. nvm으로 현재 가용 node 버전을 확인해본다. 현재 node v20.15.0을 사용하고 있다. LTS 버전이 v22인데 오래되긴 한 것 같다.

    $ nvm list
    
      * 20.15.0 (Currently using 64-bit executable)
        20.12.1

     

    nvm으로 node LTS를 설치해보자.

    $ nvm install 22
    Downloading node.js version 22.19.0 (64-bit)...
    Extracting node and npm...
    Complete
    npm v10.9.3 installed successfully.

     

    이제 새로 설치한 v22의 node LTS 버전을 사용하도록 설정한다.

    $ nvm use lts 22
    Now using node v22.19.0 (64-bit)

     

    마지막으로 npm을 업데이트 해준다.

    $ npm install -g npm
    
    removed 9 packages, and changed 42 packages in 14s
    
    $ npm -v
    11.6.0

     

    성공적으로 npm 버전이 올라갔다.

     

     


    참고로 새로운 npm을 사용하면 이전에 설치해둔 글로벌(-g) 패키지들을 다시 설치해야 한다. 😅

    나의 경우 expo, eas, vercel 가 명령어 모두 실행이 안 된다.

Designed by Tistory.