저는 간단한 Node.js 기반 웹사이트를 시작하는 스크립트를 작성 중입니다.
cd ../ap-site/ && npm start
터미널에서 위 명령을 실행하면 문제가 없지만 스크립트에서 실행하면 다음과 같은 결과가 나타납니다.
/usr/bin/env: node: No such file or directory
나는 그것을 사용하고 있다비휘발성현재 노드 버전을 관리하고 싶기 때문에 nvm use 8.8.1
파일에 추가한 ~/.bashrc
다음 스크립트에서 직접 파일을 가져왔습니다.
source /home/rescue/.bashrc
cd ../ap-site/ && npm start
which npm
또한 터미널에서 다음과 같이 생성된 경로를 직접 사용해 보았습니다 .
cd ../ap-site/ && /home/rescue/.nvm/v8.8.1/bin/npm start
그러나 나는 같은 결과를 얻습니다.
상황을 디버깅하고 bash 스크립트에서 노드 프로젝트를 실행하는 방법에 대한 아이디어가 있습니까?
답변1
질문과 답변을 너무 빨리 게시해서 죄송합니다. 하지만 이 내용이 누군가에게 도움이 될 수도 있습니다.
bash를 소싱하는 동안 파일 nvm
에 있는데도 로드되지 않는 것 같습니다 .bashrc
.
.bashrc
스크립트 상단에서 직접 설정을 가져오는 대신 다음을 수행하세요.nvm
export NVM_DIR="/home/rescue/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
nvm use 8.8.1
이 작업을 수행하면 npm
명령이 작동하기 시작했습니다.
.bashrc
동일한 3줄의 코드가 포함되어 있기 때문에 소싱이 예상대로 작동하지 않는 이유를 여전히 잘 모르겠습니다 .
sudo
스크립트가 항상 ?로 실행되는 것이 관련될 수 있습니다.