보통 에러가 생기면
rm -rf node_modules package-lock.json && npm install
을 해본다. 그래도 문제가 생긴다면 꼬였을 경우다.
npm도 버전이 다양한데, apt-get 등으로 설치할 경우에 버전이 제각각으로 설치되어, 나중에 꼬이게 되는 문제가 발생한다. 로컬에서 npm 버전을 업그레이드하거나, CI 서버에서 빌드를 할 때 등... 보통 그럴 때는 npm의 cache를 지워서 해결한다.
npm cache는 일반적으로 npm-cache/_cache 폴더에 저장된다. 이 디렉토리는 모든 HTTP 요청 데이터와 패키지 관련 데이터를 저장하는 캐시이다.
npm cache clean --force
첫 번째 방법은 npm cache clean --force 명령어이다. npm 버전 5 이후로는 --force를 붙이지 않으면 오류가 발생한다. 이 명령어는 npm의 cache를 모조리 삭제하는 명령어이다.
npm cache verify
두 번째 방법은 npm cache verify 명령어인데, 이 명령어는 cache 폴더의 내용을 확인하고, 가비지 데이터들을 수집하여 삭제하고 무결성을 확인한다. 즉 cache에서 꼬인 부분을 체크 및 해결하는 명령어로, 지우는 명령어보다는 온건한(?) 방법이라고 할 수 있다.
stackoverlflow 등에서는 두 가지 방법 모두가 답변에 달리는데, 후자를 주로 추천하는 편인 것 같다.