nvm安装及配置

标签: 无 分类: 未分类 创建时间:2020-03-02 01:49:10 更新时间:2024-12-04 11:29:35

1.windows下免安装

nvm在windows下有安装版的,还有免安装版的,今天手贱,就是非得用一下免安装版的。免安装版的有两个地方要修改。
(1) 解压之后放到自定义的路径中,比如我这里放到的是D:\soft\nvm中。

(2) 新建一个settings.text文件,里面填入一下内容。星号及其后面的内容要删掉

1
2
3
4
5
6
7
8
9
10
11
# nvm.exe所在位置的父路径,也是环境变量NVM_HOME的值
root: D:\soft\nvm
# nodejs快捷方式的存放位置,也是环境变量NVM_SYMLINK的值
path: D:\soft\nvm\nodejs
# 如果是32位系统,则这里的64改为32
arch: 64
# 没有使用代理,可以不写
proxy:
# 淘宝镜像
node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/

(3) 设置环境变量

1
2
3
NVM_HOME:D:\soft\nvm
NVM_SYMLINK:D:\soft\nvm\nodejs
PATH:%NVM_HOME%;%NVM_SYMLINK%;

(4) 验证以及安装

1
nvm -v

问题

(1) settings.text cannot found.

(2) could not be found or does not exits.Exiting.
这里主要是我没有在settings.text文件里面设置内容,及环境变量的原因。

(3) nvm.exe所在位置…
这个主要是我在settings.text文件中添加了注释,后面的星号及之后的内容就不要用了。

1
2
3
4
root: C:\dev\nvm       # nvm.exe所在位置的父路径,也是环境变量NVM_HOME的值
path: C:\dev\nodejs # nodejs快捷方式的存放位置,也是环境变量NVM_SYMLINK的值
arch: 64 # 如果是32位系统,则这里的64改为32
proxy: # 没有使用代理,可以不写

(5) 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
即便是将上面的问题解决了,设置了环境变量和settings.text文件,安装成功了nodejs,但还是出现问题了。

这个主要是我虽然安装完成了node,但是没有执行:nvm use 12.16.1指定使用哪个版本。执行nvm use之后,就可以了。

nvm use 设置版本无效

使用nvm use 命令更换版本之后,只在当前的终端有效,新建一个终端,又回恢复到原先的版本。

【解决方法】
只有新开的shell生效。已经打开的shell无论是否执行alias命令,均不生效。不写版本号,而使用node字样的话,就是永远使用最新安装的node版本。

1
2
3
4
5
## 设置完成后,重新打开终端,如果是vscode的话,那就关闭vscode重新打开
nvm alias default <版本号>

# This will set the default to be the most current version of node
nvm alias default node
参考文章:
1.nvm 设置默认版本失败 这里又说,要重新设置默认的版本才可以
2.正确的安装和使用nvm 临时切换版本,只在当前终端内有效,新开终端无效。

2.安装nodejs

1
2
3
4
5
6
7
8
9
## 查看远程可安装的nodejs版本
nvm list available
## or
nvm ls-remote
## 安装特定版本
nvm install 12.16.1
## 应用指定版本(安装之后,记得关闭cmd重新打开一个终端,在vscode中,要关闭vscode重新打开)
nvm use 12.16.1

3.mac安装

我在mac上安装,执行下载命令,总是出现问题:LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to raw.githubusercontent.com:443 ,很显然又是墙的问题,怎么办呢,只能先把脚本下载下来,然后直接安装脚本,就不要通过curl进行下载了。前提是你已经翻过强了。

1
2
3
4
5
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.36.0/install.sh | bash

# vi /etc/profile
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

下载了脚本之后,执行命令

1
2
3
4
5
6
7
8
## 更改权限
chmod 777 nvm_install.sh
## 执行安装
/bin/bash ./nvm_install.sh

## 卸载
rm -rf .nvm
## 移除掉~/.profile, ~/.bash_profile, ~/.zshrc, ~/.bashrc文件中关于nvm的配置

最后安装成功

4.zsh: command not found: nvm

当我使用bash安装了nvm之后,退出终端,再进入,运行nvm,还是显示没有nvm命令。

解决方法就是编辑.zshrc文件(没有就新建),增加如下内容。其实上一步安装的时候,安装结果就已经提示你了:Profile not found.Tried /.bashrc,/.bash_profile,~/.zshrc,and ~/.profile,找不到这几个文件,让你自己把下面的内容复制进入。

1
2
3
## vim ~/.zshrc 
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

这次退出终端,重新进入,就可以使用nvm命令了。

参考文章:
1.关于zsh:command not found:nvm问题的解决 (这篇文章其实也说明了如何解决问题就是编写.zshrc文件,但是他给的绑定了用户名)

5.nvm下载特别卡

下载卡,或者根本就无法使用ls-remote,我试了很多次,一方面我使用了移动的网,本来就很慢了,再加上强,最后试了好几次安装v15.0.0和v14.14.0都没有成功。

可以通过修改node的镜像地址来解决,export 命令用于设置或显示环境变量。通过 export 添加的环境变量仅在此次登陆周期内有效。

1
2
3
4

# export NVM_NODEJS_ORG_MIRROR=http://npm.taobao.org/mirrors/node
# 新的地址
export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node

下载简直飞快啊。

参考文章:
1.nvm下载太慢问题解决 (这是windows的安装方法)
2.mac系统安装nvm遇到的问题以及下载速度慢的解决方法 (这是mac的安装方法,其实是设置了一个环境变量进行的安装,但是缺少了export命令)
3.修改nvm镜像地址 (这是使用了export修改了临时变量)
4.Mac OSX 添加环境变量的三种方法 (这是添加环境变量的方法)
5.macOS/Linux 环境变量设置 (mac和Linux设置环境变量以及相关的原理,加载路径等说明)
小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。