React Project 생성과정 중에 다음과 같은 내용의 오류가 발생하여 계속해서 설치에 실패하였습니다.
npm install --no-audit --save --save-exact --loglevel error react react-dom react-scripts cra-template
오류 메세지를 분석해본 결과 node.js에서 사용하는 패키지 관리자인 npm 설치에 문제가 있다고 판단되어 관련 내용으로 검색을 해본 결과 버전 문제 일수있다고 생각되었습니다. npm은 버전이 굉장히 다양한데 agt-get 등으로 설치할 경우 버전이 제각각으로 설치되어 이것이 충돌을 발생시킬 수 있다는 점을 인지하고 이럴 때는 npm 버전을 업그레이드 하거나 npm의 cache를 지우는 두가지 방법이 추천되어
npm cache clean --force
위 명령어를 입력하여 npm의 cache를 모조리 삭제해보았습니다. (npm 버전 5 이후로는 --force를 붙이지 않으면 오류가 발생)
여기서 잠깐
npm은 npm-cache/_cache 라는 캐시 내의 불투명한 디렉토리에 캐시 데이터를 저장합니다. 이 디렉토리는 모든 http요청 데이터와 기타 패키지 관련 데이터를 저장하는 캐시 기반 콘텐츠 주소 지정 가능 캐시입니다. 이 디렉토리는 주로 npm 버전 5부터 모든 패키지 가져오기를 담당하는 라이브러리인 pacote를 통해 액세스 됩니다.
--force를 붙여 입력을 하였는데도 같은 오류가 발생하여
npm cache verify
cache의 폴더 내용을 확인 후 가비지 데이터들을 수집 후 삭제하여 무결성을 확인하는 npm cache verify 명령어를 입력하여 cache에서 충돌이 일어난 부분을 확인하고 해결할 수 있도록 하였습니다.
하지만 이 명령어 역시 같은 오류가 발생하여 추가적으로 검색해 본 결과 위의 두가지 방법 이외에는 node.js 삭제 후 재설치를 추천하여 기존에 깔려져 있던 node.js를 삭제하고 다시 재 설치를 한 후
npx create-react-app my-app
위 명령어를 입력하였더니 정상적으로 설치가 이루어졌습니다.
mac OS에서 node.js 삭제 후 재설치 방법
sudo npm uninstall npm -g
sudo rm -rf /usr/local/lib/node /usr/local/lib/node\_modules /var/db/receipts/org.nodejs.\*
sudo rm -rf /usr/local/include/node /Users/$USER/.npm
sudo rm /usr/local/bin/node
sudo rm /usr/local/share/man/man1/node.1
sudo rm /usr/local/lib/dtrace/node.d
brew uninstall node
아래 사이트를 통해서 node.js를 설치한다. (node.js 설치 시에는 최신버전보다 안정화된 버전을 다운받기)
https://nodejs.org/ko/https://nodejs.org/ko/
다음 코드를 차례로 입력하여 node 패키지와 npm 패키지가 정상적으로 설치되어 있는지 확인합니다.
node -v
npm -v
