어느 날 다음과 같이 npm run으로 작동하는 모든 명령이 무반응으로 끝났다.
PS C:\Users\(사용자명)\(폴더)\(프로젝트명)> npm run dev
> (프로젝트명)@0.0.0 dev
> vite
직전에 CUDA, cuDNN, python venv 설정 등을 했었는데, 설정이 꼬인 것 같았다.
해결 방법
--verbose를 이용해 로그 확인 하는 게 제일 좋다.
npm run dev --verbose
나와 같은 경우에는 spawn 함수에 넘겨주는 file 파라미터가 undefined라는 문구가 나타났는데, npm run이 내부적으로 실행할 shell을 못 찾고 있다는 뜻이다.
The "file" argument must be of type string. Received undefined
at normalizeSpawnArguments (node:child_process:539:3)
다음과 같이 스크립트를 실행할 shell을 cmd경로를 입력해 지정해 주면 해결이 되었다.
npm config set script-shell "C:\\Windows\\System32\\cmd.exe"
추가로 잘 설정이 되어있는지 확인 하고 싶으면 get을 통해 값을 확인해 주자.
npm config get script-shell
알고나면 로그 분석해서 간단하게 해결할 문제였지만, 관련해서 검색을 많이 해보았는데도 정보가 잘 나오지 않아서 node를 재설치도 해보고 캐시도 비워보고 고생을 좀 했었다.