frh*_*rhd 514 macos homebrew node.js npm nvm
nvm
忘记节点版本并默认为空:$ nvm ls
:
.nvm
v0.11.12
v0.11.13
Run Code Online (Sandbox Code Playgroud)
我必须nvm use v.0.11.13
在每个会话中继续打击:
.nvm
v0.11.12
-> v0.11.13
Run Code Online (Sandbox Code Playgroud)
我已经尝试了brew
安装,以及官方安装脚本.
我.profile
的brew版本:
#nvm
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh
Run Code Online (Sandbox Code Playgroud)
对于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
Run Code Online (Sandbox Code Playgroud)
dyl*_*nts 1126
试试nvm alias default
.例如:
$ nvm alias default 0.12.7
这将在shell中设置默认节点版本.然后通过关闭shell窗口,打开一个新窗口,验证更改是否仍然存在,然后:
node --version
小智 78
别名为node
自身以避免更新默认别名以及稍后的节点版本更新.
nvm alias default node
Run Code Online (Sandbox Code Playgroud)
ohh*_*hho 39
要安装最新的稳定版本:
nvm install stable
Run Code Online (Sandbox Code Playgroud)
要将默认设置为稳定版本(而不是特定版本):
nvm alias default stable
Run Code Online (Sandbox Code Playgroud)
列出已安装的版本:
nvm list
Run Code Online (Sandbox Code Playgroud)
截至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)
Run Code Online (Sandbox Code Playgroud)
pro*_*ngo 33
这些解决方案在我的环境中都不起作用,无论如何,nvm 似乎总是加载第一个安装的节点版本(除非您通过暂时更改它nvm use
)。
我发现更改默认值的唯一方法是:
nvm cache clear
nvm alias default 12
或任何版本)nvm use 12
nvm ls
(列出安装)nvm uninstall x
(为每个非默认安装运行)nvm install x
您可以使用此脚本来自动执行此过程(只需将第一个变量更改为您想要的版本) - 它将自动重新安装您之前拥有的所有版本。
DEFAULT_NVM_VERSION=16
nvm cache clear
nvm install $DEFAULT_NVM_VERSION
nvm alias default $DEFAULT_NVM_VERSION
NVERS=$(nvm ls --no-alias | grep -v -- "->" | grep -o "v[0-9.]*")
while read ver; do nvm uninstall $ver; done <<< $NVERS
while read ver; do nvm install $ver; done <<< $NVERS
nvm use $DEFAULT_NVM_VERSION
Run Code Online (Sandbox Code Playgroud)
或者作为一句单行:
DEFAULT_NVM_VERSION=16 && nvm cache clear && nvm install $DEFAULT_NVM_VERSION && nvm alias default $DEFAULT_NVM_VERSION && NVERS=$(nvm ls --no-alias | grep -v -- "->" | grep -o "v[0-9.]*") && while read ver; do nvm uninstall $ver; done <<< $NVERS && while read ver; do nvm install $ver; done <<< $NVERS && nvm use $DEFAULT_NVM_VERSION
Run Code Online (Sandbox Code Playgroud)
新终端现在应该遵循默认版本。
Ars*_*-II 31
1)安装:
nvm install 8.10.0
Run Code Online (Sandbox Code Playgroud)
2) 每个终端使用一次
nvm use 8.10.0
Run Code Online (Sandbox Code Playgroud)
3) 设置为所有终端的默认值
nvm alias default 8.10.0
Run Code Online (Sandbox Code Playgroud)
您可能需要使用 root 权限来执行这些操作。
并且不要忘记检查nvm 文档以获取更多信息。
Jef*_*els 23
nvm通过更改PATH变量来完成它的工作,所以你需要确保在获取nvm.sh脚本后你不会以某种方式将PATH更改为其他东西.
在我的例子中,在.bashrc中调用了nvm.sh,然后在.bash_profile中更新了PATH变量,导致我的会话在nvm节点之前找到了系统节点.
joe*_*dle 22
在我的情况下,另一个程序添加了PATH
更改.bashrc
如果其他程序改变了PATH
后 nvm的初始化,那么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"
Run Code Online (Sandbox Code Playgroud)
解:
### 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
Run Code Online (Sandbox Code Playgroud)
(这与CentOS上的bash 4.2.46一样.在我看来,就像bash中的一个bug,但我可能会弄错.)
最受好评的解决方案似乎对我不起作用.我的解决方案如下:
brew uninstall nvm
brew install nvm
在终端中,请按照以下步骤(通过自制软件安装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,或你的shell的等同配置文件.(再次从最新拍摄在使用自制软件的NVM安装中列出)
这个问题在 OSX 中提到过,但它发生在我的 linux 操作系统中。我尝试使用,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
Run Code Online (Sandbox Code Playgroud)
如果您尝试了所有一切仍然没有运气,可以尝试以下方法:_
1->卸载NVM
rm -rf ~/.nvm
Run Code Online (Sandbox Code Playgroud)
2 - >删除NPM依赖性按照此
3-> 安装NVM
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
5-> CONTROL + X
保存更改
6->运行 . ~/.bash_profile
7->现在您应该已经nvm
安装在计算机上,要运行nvm install v7.8.0
该节点,将使用默认节点版本,也可以安装任何版本的节点
我正在使用 ZSH,所以我必须按~/.zshrc
顺序修改有关 NVM 的行:
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
source ~/.nvm/nvm.sh
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题你可以在这里看到
nvm use
并不意味着持续存在 - 它只是在 shell 的生命周期内。
nvm alias default node
如果您希望在打开新 shell 时将其设置为默认值,您可以这样做,或者您可以创建一个.nvmrc
文件,该文件将优先于当前目录中的任何位置(向上到/
.
https://github.com/nvm-sh/nvm/issues/658
归档时间: |
|
查看次数: |
124375 次 |
最近记录: |