frontend

[npm] Failed to install dependencies - npm 7 버전

jhlee_ 2022. 8. 8. 17:59

storybook을 공부해보고 싶어 유튜브 영상을 따라했다. 
영상에서 tsdx라는 zero cli tool을 사용하길래 그대로 따라했는데 오류때문에 정상적으로 튜토리얼을 따라할 수 없었다.

> npx tsdx create 파일명
으로 명령 작업파일을 tsdx로 생성하고 
template 선택, author 입력하면 package가 자동으로 install되야하는데 아래와 같은 에러가 떴다.

Failed to install dependencies 
Error: Command failed with exit code 1: npm install @babel/core @size-limit/preset-small-lib @storybook/addon-essentials @storybook/addon-info @storybook/addon-links @storybook/addons @storybook/react @types/react @types/react-dom babel-loader husky react react-dom react-is size-limit tsdx tslib typescript --save-dev


node v17.8.0 / npm v7.0.0 (x) 
node v14.17.0 / npm v 6.14.13 (o)

한참 씨름했는데 다른 컴퓨터에서는 잘 돌아간다...ㅠㅠ 알고보니 npm version의 문제였다.
npm7이상의 버전부터는 자동적으로 peer dependency를 설치하기 때문 npm 6.x.x 과 다르게 동작한다.
npm 6.x.x대처럼 peer dependency를 처리하고 싶다면 npm install —legacy-peer-deps로 해결할 수 있다고 한다.
하지만, 잘 돌아가는 npm 버전을 알고 있고, mac을 사용하고 있어서 nvm으로 버전을 낮추어 해결하였다.

알게된 점

✔️ npm 7이상의 버전은 peer dependency를 자동적으로 설치한다. npm 6.x.x이하와 다름.
✔️ 작업할때는 항상 환경 node, npm 버전 확인하고 동일하게 맞추기
✔️ 라이브러리를 선택할때는 관리자/기여자가 여전히 유지보수를 하고 있는지 확인하자. 마지막 published가 2년 이상이라면 issue에서 확인하기.
언제라도 금방 죽은/죽어가는 라이브러리로 시작했다 씨름하기엔 시간이 없다. 빠르게 버리고 다른 방안을 선택하는 것이 현명해보인다.
✔️ tdsx 보다 다른 것을 채택하기

 

참고 : Is TSDX still maintained?

728x90