nvm、npm 与 nrm
nvm
nvm 是什么?
nvm(node.js version manager)
即nodejs
版本管理器;可以简单操作 node 版本的切换、安装、查看。。。等等;与npm
不同的是,npm
是依赖包的管理工具。
为什么需要用 nvm?
node
有很多的版本,切记,并不是新版一出现,旧的版本就不去用了;在不同的项目开发过程中,可能需要我们电脑中同时存在多个不同版本的node
;这时候就需要一个软件,来更好的管理这些不同版本的node
同时存在于我们的电脑中。
nvm 的安装
安装
nvm
之前先删除现有的node
;在控制面板里面删了就行;nvm
下载链接;安装路径建议不要换,因为用默认的路径环境变量就自动配置好了;即一直
Next
,啥也不要改;通过
nvm -v
查看是否安装成功了;通过nvm list
查看当前电脑上安装了那些版本的node
(因为刚才卸载了,所以现在是No installations recognized.
)配置
nvm
:复制下面代码 (配置镜像源) 到nvm
文件位置 (过程 3 的第一张图),点开setting.txt
js1
2node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/
nvm 命令
nvm version
:查看nvm
版本nvm list
:查看当前安装的Node.js
的所有版本 **(常用)**nvm install 版本号
:安装指定版本的Node.js
(常用)nvm uninstall 版本号
:卸载指定版本的Node.js
nvm use 版本号
:选择指定版本的Node.js
(常用)
安装 node
以管理员方式运行
cmd
命令行- 安装对应的版本
js1
nvm install 版本号 // 例如:nvm install 16.18.0
- 切换到安装的版本
js1
nvm use 版本号 // 切换到使用指定的nodejs版本
- 检测是否切换完成,新开一个
cmd
plaintext1
node -v
- 多个版本的
node
切换:这里又安装了 10.15.0 版本的node
,通过nvm use 10.15.0
切换了版本号;
npm
npm(Node Package Manager),Node.js 的包管理器,安装 Node.js 之后自带 npm,无需单独安装。💓
查看版本
输入 npm -v 来查看当前 npm 的版本
nrm
nrm(NPM registry manager),国内使用 npm 官方源来安装包的时候比较慢,所以经常会需要修改 npm 源地址。npm 倒是提供了修改源的方法,但是 nrm 更加方便快捷。💓
nrm 的安装
1 | npm install -g nrm // 使用 npm 全局安装 |
nrm 命令
nrm ls
:查看全部镜像源 (按道理说应该有 * 来展示目前所用的源,但现在没,原因见下文)
nrm current
:查看当前源 (按道理说应该有目前所用的源,但现在没,原因见下文)
nrm use taobao
:切换成taobao
镜像源
nrm test
:测速并查看当前所用源 (前面有 *)
- 添加自定义源
1 | nrm add <registry> <url> |
其中,registry 为源名,url 为源地址。
比如:添加一个公司私有的 npm 源,源地址为:http://192.168.22.11:8888/repository/npm-public/,源名为 fsllala(随意取)。
1 | nrm add fsllala http://192.168.22.11:8888/repository/npm-public/ |
nrm -h
:查看帮助
解决 nrm ls 命令没有 *(星号)的问题
当在终端里执行
nrm ls
指令查看我们的镜像源时,我发现列表中并没有星号存在,一般情况下星号表示目前所处的镜像源,但是没有星号我们根本不知道目前在使用哪个镜像源;并且执行nrm current
指令也没有反应。(可能是版本的问题)
- 需要执行一下命令。重装版本一下即可解决,可能下载的时间会有点长请耐心等待即可。
1 | npm install Pana/nrm -g |
- 验证
解决私有源下载依赖时 401
使用私服 npm install 时报错 code E401,Unable to authenticate, need: BASIC realm=”Sonatype Nexus Repository Manager”
手动登陆仓库地址,按提示输入账户名、密码、邮箱:
1 | npm login registry="" -----引号里填仓库地址 |