MacOS/맥북/M1 - node 가 정상적으로 동작하지 않는 현상
들어가며
타입스크립트를 설치했음에도 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 2
를 rosetta 2
버전으로 변경해서 사용해보자.
1.응용 프로그램
에서 iterm 2
를 복제
한다.
2.복제한 iterm 2
를 우클릭
해서 정보 가져오기
를 누른다.
3.rosetta 를 사용해서 열기
를 체크해서 연다.
4.기존에 설치했었던 nvm
과 node
를 삭제하자(재설치
하기 위해서)
- 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/