2024. 4. 3. 04:00ㆍ_ExtracurricularActivities
#99클럽 #99일지 #코딩테스트 #개발자스터디 #항해 #TIL
✅ node 경로에 오류가...
✅ npm start할 때 node가 없다니?
✅ 해결방법
✅ node 경로에 오류가...
✨ " '"node"' is not recognized as an internal or external command,
✨ '"node"'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는배치 파일이 아닙니다.
우아한테크프리코스 이후로 git bash를 기본으로 쓰고 있던 개발환경에 문제가 생겼습니다. 어느순간부터 node가 아닌 "node"를 실행하려고 하면서 경로를 찾지 못해서 git bash가 아닌 powershell을 이용했습니다. 그러나 이는 상황을 해결하지 않고 미루는 것뿐이었습니다. 오늘은 해결법을 찾아서 해결해보려 합니다.
노드 실행파일이 경로에 없다는 문제를 해결하기 위해 경로를 재연결해보겠습니다. 그전에 다른 부분이 잘못된 부분이 있는지 먼저 확인해야합니다.
1. node가 설치되어 있는 경로 확인
2. 시스템 환경변수 확인
3. Git bash 경로 확인
수정하면서 바뀌었는데 아무래도 여기가 제일 수상했습니다. VSC 공식문서를 참고한 블로그를 따라 defaultProfile로 설정했습니다. 그리고 Git bash의 path가 좀 수상한데 경로를 따라가니 git bash가 있었습니다. 이는 symbolic link로 연결되어있다고 하네요.
무엇이 문제일까요... 제가 보기엔 VSC에서 "node"로 실행을 잘못하고 있는거 같습니다. node 깃허브 issue에서 같은 오류를 발견할 수 있었습니다. 문제는.. 재설치로 해결했다라는 답변이 너무 많았습니다. 그러나 VSC상의 문제라, 재설치로 해결할 수가 없는 것 같습니다. 양질의 기술블로그의 내용은, "검색해서 나오지 않는 내용을 적을 때다."라는 N사 개발자 분의 말씀을 기억하며... 일단 서치해보겠습니다.
재설치해도 안되면 저기 깃허브에 여쭤보면 해결해줄거같습니다... 아무튼 스택오버플로우에서 cmd에서 경로를 설정해봐라는 내용으로 아래를 설정했습니다. 그런데 이건 시스템 환경변수를 설정하는 명령어였습니다. 이미 했습니다.
SET PATH=C:\Program Files\Nodejs;%PATH%
서치끝에 일단 다시 재설치를 해보기로해서 node 완전 삭제를 했습니다.
그러나 재설치로 해결할 수가 없습니다. 정말 난감...
✅ npm start할 때 node가 없다니?
VSC상의 문제라고 생각했는데, node도 찾지 못하니 환경변수 문제임을 확신할 수 있었습니다.
✅ 해결방법
음.. 스택오버플로우에서 해결방법을 찾았습니다. Windows에서 환경변수를 다룰 때 큰 따옴표(doublequotes)" 가 있으면 하나의 문자열로 처리되어 뒤의 모든 내용은 생략된다고합니다. 🤗 큰따옴표가 있다면 제거합시다. 🤗 예를 들어 a/:; "b/: 123"; c/:; 면
a/
b/ 123
c/
위처럼 파싱되지만 큰따옴표가 하나만 있으면 뒤에 있는 내용을 묶여서 구문분석하는 Windows의 기발한 방식 때문에 뒷부분이 생략됩니다. 따라서 플래그를 기준으로 토글하고 설정하면 세미콜론은 무시됩니다. 따라서 잘못된 따옴표가 경로 끝, 또는 중간에 있으면 데이터 끝까지 변수데이터의 나머지에 영향을 줄 수 있습니다.
where node로 찾는 방법으론 Git bash에서 작동할 수는 있습니다. where.exe set PATH="" 이런식으로 문제가 있는 항목을 수정가능합니다. 그렇지만 시스템 환경변수에서 직접 수정했습니다. 사진상의 파이썬 환경변수 뒤의 " 설마했습니다. 아래 명령어로 시스템 환경변수를 볼 수 있습니다.
echo $PATH
놀랍게도 echo $PATH로 ✨문제가되는 환경변수를 확인하고 시스템환경변수에서 제거✨하면 실행이 됩니다! 시스템 환경변수는 하나하나 편집에서 삭제해야합니다. 삭제한 환경변수가 그대로 돌아오는 경우가 있었으니 주의해서 끈기있게 삭제합시다.
그리고 위로이동으로 ✨NODE를 상단으로 올려서✨ 혹시 또 다른 환경변수로 엉켰을때, 가장 먼저 실행되어 영향을 받지 않게 했습니다.
참고자료
참고해서 해결한 스택오버플로우
https://stackoverflow.com/questions/62530453/node-and-npm-are-installed-but-git-bash-doesnt-recognize-node-inside-npm-run
%NODE_HOME% node 환경변수 설정
https://velog.io/@nohsangwoo/windows-git-bash-npm-command-not-found
node 완전 삭제
https://unit-15.tistory.com/205
비슷한 오류들
https://www.reddit.com/r/node/comments/1alb2t6/node_is_not_recognized_as_an_internal_or_external/?rdt=40533
https://intellij-support.jetbrains.com/hc/en-us/community/posts/13991837267730-SCSS-File-Watcher-error-node-is-not-recognized
https://github.com/nodejs/help/issues/3952
https://growing-nyang.tistory.com/94
https://code.visualstudio.com/docs/terminal/basics
'_ExtracurricularActivities' 카테고리의 다른 글
Typescript Object, Array 알아보기 #99클럽6일차 #TIL (1) | 2024.04.05 |
---|---|
Typescript 핵심 타입 number, string, boolean #99클럽5일차 #TIL (0) | 2024.04.04 |
lite-server, Live-server 라이브러리 분석하기 #99클럽3일차 #TIL (2) | 2024.04.02 |
Typescript 강의: script defer과 async속성 DOM으로 알아보기 #99클럽2일차 #TIL (0) | 2024.04.01 |
Y2K 버그를 겪고 Typescript 이전 하기 #99클럽1일차 #TIL (2) | 2024.03.31 |