프론트엔드/트러블 슈팅

MacOS/맥북/M1 - node 가 정상적으로 동작하지 않는 현상

space.developher 2023. 1. 30. 11:07
반응형

들어가며

타입스크립트를 설치했음에도 tsc 명령어가 동작하지 않는 현상 에서 해결하는 과정에서 기존에 작업중이던 프로젝트 를 구동하면 빌드 과정 에서 실패 가 발생하는 문제가 생겼다.

현상

npm start 시 (build 관련 스크립트도 함께 동작) npm Err! 가 발생한다.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! node-sass@6.0.1 postinstall: `node scripts/build.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the node-sass@6.0.1 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/space.developher/.npm/_logs/2023-01-30T00_30_49_502Z-debug.log

문제 원인 고민

brew 를 이용한 타입스크립트 설치 과정에서 node.js 버전이 최신 버전(19 버전)으로 업데이트 되서 프로젝트 패키지 와의 호환성 문제로 발생하는 것이라고 생각했다.

node.js 버전을 낮추면 돌아가지 않을까 생각했다.

시도

nvm 을 설치해서 node.js 버전을 낮추면서 정상적으로 동작하는지 시도했다.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! node-sass@6.0.1 postinstall: `node scripts/build.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the node-sass@6.0.1 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/space.developher/.npm/_logs/2023-01-30T00_30_49_502Z-debug.log

해결되지 않고 여전히 등작하는 npm ERR 의 향연

왜 버전을 낮추는데도 똑같은 에러가 발생할까?

문제 원인 고민2

nvm 으로 node.js 버전을 다시 설치해도 계속해서 실패되는 상황이다.

stackoverflow 서칭 내용 과 유사한 부분이 있다고 생각된다. (난 MacOS/M1 유저이다.)

글에서는 15 버전 미만 노드 에서는 ARM 아키텍처 의 경우 지원하지 않는다고 한다.
따라서, Rosetta 2 를 사용해서 node.js설치 해야한다고 한다.

시도2

기존에 사용중이던 터미널 iterm 2rosetta 2 버전으로 변경해서 사용해보자.

1.응용 프로그램 에서 iterm 2복제 한다.

2.복제한 iterm 2우클릭 해서 정보 가져오기 를 누른다.

3.rosetta 를 사용해서 열기 를 체크해서 연다.

4.기존에 설치했었던 nvmnode 를 삭제하자(재설치 하기 위해서)

  • nvm 제거
  • brew uninstall nvm
  • node 제거
  • brew uninstall node
➜  ~ brew uninstall node
Error: No such keg: /opt/homebrew/Cellar/node

음?? node 가 제거되지 않는다. 이미 지워진건가? 확인해보자

➜  ~ node -v
v14.21.2

node 는 여전히 살아있다.

명령어로 삭제하지 못하니 직접 접근해서 node제거 하자.

1)node 가 어디있는지 확인하자.

2)node 경로 확인

which node
➜  ~ which node
/usr/local/bin/node

3)node 가 존재하는 폴더로 이동

cd /usr/local/bin

4)우선 목록 확인부터 한다.

➜  ~ ls 
corepack n node npm npx

5)node 직접 제거하자.

sudo rm -rf node npm

6) 제거 완료됐다.

5.n 을 활용해서 node 14 버전 을 재설치하자.

sudo n 14
➜  bin sudo n 14
     copying : node/14.21.2
     installed : v14.21.2 (with npm 6.14.17)

잘 설치되었다. 확인해보자

➜  bin node -v
v14.21.2

설치 잘되었다.

해결

rosetta 터미널 에서 해당 프로젝트 에 접근해서 npm start 하였다

오! 스크립트들이 정상적으로 실행되기 시작한다.

시간이 지나니 빌드가 정상적으로 완료되고 프로젝트가 실행되었다.

주말을 바쳤던 node 문제가 해결되는 순간이다. 기쁘다.

레퍼런스

https://github.com/nvm-sh/nvm/issues/2350
https://stackoverflow.com/questions/67254339/nvm-install-node-fails-to-install-on-macos-big-sur-m1-chip
https://stackoverflow.com/questions/49648514/how-to-uninstall-n-and-all-node-versions-installed-by-n
https://velog.io/@jong/Mac%EC%97%90%EC%84%9C-Node.js%EC%99%80-NVM-%EC%82%AD%EC%A0%9C%ED%95%98%EA%B8%B0
https://jhyeok.com/m1-trouble-shooting/

반응형