nvm은 새 터미널 세션에서“잊어 버린”노드를 유지합니다
OS X에서 새 터미널 세션을 사용 nvm
하면 노드 버전을 잊어 버리고 기본값은 아무것도 없습니다.
$ nvm ls
:
.nvm
v0.11.12
v0.11.13
nvm use v.0.11.13
모든 세션에서 계속 타격 을 가해 야합니다.
.nvm
v0.11.12
-> v0.11.13
brew
공식 설치 스크립트뿐만 아니라 설치를 모두 시도했습니다 .
.profile
추출 버전에 대한 내 :
#nvm
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh
그리고 install.sh 스크립트의 경우 :
$ curl https://raw.githubusercontent.com/creationix/nvm/v0.10.0/install.sh | bash
#nvm
export NVM_DIR="/Users/farhad/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
내가 잘못하고있는 것에 대한 단서가 있습니까?
시도하십시오 nvm alias default
. 예를 들면 다음과 같습니다.
$ nvm alias default 0.12.7
쉘에서 기본 노드 버전을 설정합니다. 그런 다음 쉘 창을 닫고 새 창을 열어 변경 사항이 지속되는지 확인한 후 다음을 수행하십시오.node --version
에 별칭 node
자체는 나중에 노드 버전 업데이트와 함께 기본 별칭을 업데이트 방지 할 수 있습니다.
nvm alias default node
최신 안정 버전을 설치하려면
nvm install stable
특정 버전 대신 기본값을 안정적인 버전으로 설정하려면
nvm alias default stable
설치된 버전을 나열하려면 다음을 수행하십시오.
nvm list
현재 v6.2.0
다음과 같이 보입니다.
$ nvm list
v4.4.2
-> v6.2.0
default -> stable (-> v6.2.0)
node -> stable (-> v6.2.0) (default)
stable -> 6.2 (-> v6.2.0) (default)
iojs -> N/A (default)
nvm은 PATH 변수를 변경하여 작업을 수행하므로 nvm.sh 스크립트를 소싱 한 후 PATH를 다른 것으로 변경하지 않아야합니다.
필자의 경우 nvm.sh가 .bashrc에서 호출되었지만 PATH 변수가 .bash_profile에서 업데이트되어 세션이 nvm 노드 이전의 시스템 노드를 찾았습니다.
제 경우에는 다른 프로그램이 PATH
변경 사항을 추가 했습니다.bashrc
다른 프로그램이 nvm을 초기화 PATH
한 후 변경 한 경우 nvm의 PATH
변경 사항을 잊어 버렸으며 시스템 노드를 노드에서 가져옵니다 PATH
.
이 솔루션은에 NVM 설정을 이동하는 것이었다 하단 의.bashrc
### BAD .bashrc ###
# NVM initialisation
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
# Some other program adding to the PATH:
export PATH="$ANT_ROOT:$PATH"
해결책:
### GOOD .bashrc ###
# Some other program adding to the PATH:
export PATH="$ANT_ROOT:$PATH"
# NVM initialisation
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
(이것은 CentOS의 bash 4.2.46에서 발생했습니다. bash의 버그처럼 보이지만 잘못 생각할 수 있습니다.)
최고 등급의 솔루션은 저에게 효과적이지 않은 것 같습니다. 내 솔루션은 다음과 같습니다.
- homebrew를 사용하여 nvm을 완전히 제거하십시오.
brew uninstall nvm
- 다시 설치
brew install nvm
터미널에서 아래 단계를 따르십시오 (homebrew를 통해 nvm을 설치할 때도 나열 됨).
mkdir ~/.nvm cp $(brew --prefix nvm)/nvm-exec ~/.nvm/ export NVM_DIR=~/.nvm source $(brew --prefix nvm)/nvm.sh
위에서 설명한 단계는 NVM의 작업 디렉토리를 $ HOME 경로에 추가하고, nvm-exec를 NVM의 작업 디렉토리에 복사 한 다음 $ HOME / .bashrc, $ HOME / .zshrc 또는 쉘의 동등한 구성 파일에 추가합니다. homebrew를 사용하여 NVM 설치에 나열 됨)
여전히 모든 것을 시도했지만 운이 없다면 : _
1-> NVM 제거
rm -rf ~/.nvm
2-> 이것을 따라 npm 종속성을 제거하십시오.
3-> NVM 설치
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
4-> ~/.bash_profile
구성 설정
운영 sudo nano ~/.bash_profile
다음에 복사하여 붙여 넣기
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
5-> CONTROL + X
변경 사항 저장
6-> 달리기 . ~/.bash_profile
7-> 이제 nvm
시스템에 설치되어 있어야합니다. 노드를 설치하려면 nvm install v7.8.0
기본 노드 버전이되거나 모든 버전의 노드를 설치할 수 있습니다
이 질문은 OSX에 대해 언급되었지만 Linux OS에서 나에게 발생했습니다. 나는 사용하려고 시도 nvm alias default <version>
했지만 새로운 터미널 세션마다 사용 된 노드 버전을 잊어 버렸습니다. 그래서, 여기 내가 알아 낸 해결책이 있습니다.
노드 버전의 기본 별명을 설정하고 .bashrc 및에 다음 코드를 입력하십시오 source .bashrc
.
export NVM_DIR="/home/bonnie/.nvm"
## If the file exists and is not empty
if [ -s "$NVM_DIR/nvm.sh" ]; then
## Source it
source "$NVM_DIR/nvm.sh"
fi
NODE_DEFAULT_VERSION=$(<"$NVM_DIR/alias/default")
export PATH="$NVM_DIR/versions/node/$NODE_DEFAULT_VERSION/bin":$PATH
버전을 설치 한 후 실행하십시오.
n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local
이 명령은 nvm을 통해 활성화 한 모든 노드 버전을 / usr / local / 디렉토리에 복사하고 모든 사용자가 액세스 할 수 있도록 권한을 설정합니다.
나는 여기서 새로운 길을 찾았다. n
대화식으로 Node.js 관리를 사용하면 도움이됩니다.
nvm install 10.14
예를 들어을 수행하면 nvm use
현재 셸 세션에 해당 버전이 사용되지만 향후 세션에 대해 항상 기본값으로 설정 하지는 않습니다 . 새 쉘 세션에서 얻는 노드 버전은에 의해 결정됩니다 nvm alias default
. 혼란스럽게도 nvm install
기본 별칭이 아직 설정되지 않은 경우에만 설정됩니다. 예상되는 동작을 얻으려면 다음과 같이하십시오 :
nvm alias default ''; nvm install 10.14
그러면 해당 버전이 다운로드되고 현재 세션에 사용 되며 향후 세션의 기본값으로 설정됩니다.
SDKMAN도 있다면 ...
어떻게 든 SDKMAN이 내 NVM과 충돌했습니다. 당신이 이것으로 끝내고 여전히 그것을 알아낼 수 없다면, 나는 단지 SDKMAN에서 "이것은 반드시 파일의 끝에 있어야합니다 ..."를 무시하고 그 뒤에 NVM 줄을 넣어서 수정했습니다.
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="/Users/myname/.sdkman"
[[ -s "/Users/myname/.sdkman/bin/sdkman-init.sh" ]] && source "/Users/myname/.sdkman/bin/sdkman-init.sh"
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
이 문제와 오랜 시간 동안 충돌을 일으켜 문제를 해결하는 방법을 찾았습니다. 다음은 문제에 대한 단계별 솔루션입니다.
터미널을 열고 명령 행 개발자 도구를 설치하십시오.
xcode-select --install
엔터 키를 치시오
최신 버전의 NVM을 설치하십시오.
cd ~/
엔터 키를 치시오
git clone https://github.com/creationix/nvm.git .nvm
- 엔터 키를 치시오
이전에 .nvm 폴더를 이미 만든 경우 다음 오류 메시지가 표시됩니다.
fatal: destination path '.nvm' already exists and is not an empty directory.
그렇지 않으면 복제 프로세스가 완료 될 때까지 실행중인 것을 볼 수 있습니다.
최신 NVM 버전을 확인하십시오.
cd ~/.nvm
엔터 키를 치시오
git checkout v0.34.0
다음과 유사한 응답이 나타납니다.
HEAD is now at 3d9c31d v0.34.0
시스템마다 버전이 다를 수 있습니다.
ls
엔터 키를 치시오
. nvm.sh
엔터 키를 치시오
nvm list
엔터 키를 치시오
당신은 당신의 컴퓨터에 설치된 다른 노드 버전을 볼 수 있습니다, 약간의 오류가있을 수 있습니다, 그들에게주의를주지 마십시오.
nvm ls-remote | tail -n9
엔터 키를 치시오
nvm list
vim을 사용하여 bash를 엽니 다.
vim ~/.bash_profile
vim 편집기에서 :
i
를 눌러INSERT mode
새 줄 을 입력 하고 시작 하십시오 . 편집 할 때 실수가 있으면ESC
키를 누른 다음:q!
저장하지 않고 종료하십시오.export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
ESC
파일 편집이 끝나면 키를 누릅니다 (삽입 모드가 사라지는 것을 볼 수 있습니다).- 를 눌러
:wq
파일을 저장하십시오. 엔터 키를 치시오
nvm ls-remote | tail -n9
Enter 키를 누르고 제시된 최신 nvm 버전을 설치하십시오.
nvm install 12.6.0
프로세스가 완료되면 다음을 볼 수 있습니다.
Now using node v12.6.0 (npm v6.9.0)
다음을 눌러 설치가 성공했는지 확인할 수 있습니다.
node -v
또는npm -v
시스템에 설치된 nvm 및 npm의 버전을 표시해야합니다.
기반 : macOS Mac OS X에서 최신 Node Version Manager NVM 설치 및 노드 및 NPM 설치 방법
$ nvm alias default {NODE_VERSION}
위의 명령을 사용하면 노드 버전 만 업데이트하지만 npm
여전히 이전 버전을 사용합니다.
다음은 업데이트에 대한 또 다른 솔루션 인 모두 node
와 npm
, 내가 노드를 사용하고자하는 내 경우에는 8.9.4
내가 명령 아래를 사용했다.
$ nvm use default 8.9.4
그리고 명령은 출력을 반환합니다.
이제 노드 v8.9.4 (npm v5.6.0) 사용
또한 nvm 전에 노드를 설치 한 경우 ~ / .bash_profile 에서 다음과 같은 항목이 없는지 확인하십시오 .
export PATH=/bin:/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:$PATH
있는 경우 주석 / 제거하면 nvm 이 기본 노드 버전 처리를 시작해야합니다.
참고 URL : https://stackoverflow.com/questions/24585261/nvm-keeps-forgetting-node-in-new-terminal-session
'development' 카테고리의 다른 글
수동으로 새로 고치거나 쓸 때 반응 라우터 URL이 작동하지 않습니다 (0) | 2020.02.12 |
---|---|
Twitter Bootstrap Modal에 함수 바인딩 닫기 (0) | 2020.02.12 |
Xcode 10 오류 : 여러 명령 생성 (0) | 2020.02.12 |
Android에서 INSTALL_FAILED_INSUFFICIENT_STORAGE 오류에 대한 솔루션 (0) | 2020.02.12 |
부트 스트랩이란 무엇입니까? (0) | 2020.02.12 |