Windows下安装 node 的版本控制工具 nvm


Posted in Javascript onFebruary 06, 2020

NVM 是什么?

NVM——Node Version Manager(Node版本管理器),用它可以方便的在机器上安装并维护多个Node的版本。那么为什么需要多个版本呢?场景有很多,比方说:你可能同时进行两个项目,而不同项目所使用的node版本是不一样的;又或者你要用更新的版本是做一些实验。这种情况下,如果没有NVM自己去安装和维护多个版本的node也是一件比较麻烦的事情。这就是NVM的价值。

nodejs 是什么?

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm,是全球最大的开源库生态系统。

windows 下安装 nvm

首先确保你的网络畅通,还有不被墙,如果需要翻墙,请看:

https://github.com/getlantern/lantern
下载 nvm 包 地址:https://github.com/coreybutle...,本文最新版本是1.1.4, 我们选择第一个:nvm-noinstall.zip 下载完成后解压到一个地方,比如: C:\dev\nvm 里面的文件列表是这样的:elevate.cmd、elevate.vbs、install.cmd、LICENSE、nvm.exe

备注:windows下要设置显示文件类型的扩展名,这样才能看到上述文件的后缀

双击 install.cmd 然后会让你输入”压缩文件解压或拷贝到的一个绝对路径” 先不用管它,直接回车,成功后,会在C盘的根目录生成一个settings.txt的文本文件,把这个文件剪切到C:\dev\nvm目录中,然后我们把它的内容修改成这样:

root: C:\dev\nvm 
path: C:\dev\nodejs 
arch: 64 
proxy: none 
node_mirror: http://npm.taobao.org/mirrors/node/ 
npm_mirror: https://npm.taobao.org/mirrors/npm/

然后我们开始配置环境变量了,因为刚刚点击了install.cmd的文件,那么会在环境变量的系统变量中,生成两个环境变量:NVM_HOME 和 NVM_SYMLINK 我们开始修改这两个变量名的变量值:NVM_HOME的变量值为:C:\dev\nvm; NVM_SYMLINK的变量值为:C:\dev\nodejs

我们还会发现,在Path中也会自动添加上C:\dev\nvm;或者是C:\dev\nodejs,如果有的话,把他们删掉,没有的话更好,我们自己来配置,在Path的最前面输入: ;%NVM_HOME%;%NVM_SYMLINK%;

打开一个cm 窗口输入命令:nvm v ,那么我们会看到当前nvm的版本信息。然后我们可以安装nodejs了。

通过 nvm 安装 nodejs

继续输入命令:nvm install latest 如果网络畅通,我们会看到正在下载的提示,下载完成后 会让你use那个最新的node版本。

用nvm install node版本号来安装node,如 nvm install 8.0.0

如果你是第一次下载,在use之前,C:\dev目录下是没有nodejs这个文件夹的,在输入比如: nvm use 6.7.0 之后,你会发现,C:\dev目录下多了一个nodejs文件夹,这个文件夹不是单纯的文件夹,它是一个快捷方式,指向了 C:\dev\nvm 里的 v6.7.0 文件夹。

同样的咱们可以下载其他版本的nodejs,这样通过命令:nvm use 版本号 比如:nvm use 6.7.0就可以轻松实现版本切换了。

备注: 如果你的电脑系统是32 位的,那么在下载nodejs版本的时候,一定要指明 32 如: nvm install 6.7.0 32 这样在32位的电脑系统中,才可以使用,默认是64位的。

npm的安装

首先 npm是什么?
npm有两层含义,第一是npm这个开源的模块登记和管理系统,也就是这个站点:https://www.npmjs.com。
第二个指的是 nodejs package manager 也就是nodejs的包管理工具。我们主要说的就是这一个。
在每个版本的nodejs中,都会自带npm,为了统一起见,我们安装一个全局的npm工具,这个操作很有必要,因为我们需要安装一些全局的其他包,不会因为切换node版本造成原来下载过的包不可用。
首先我们进入命令模式,输入 npm config set prefix "C:\dev\nvm\npm" 回车,这是在配置npm的全局安装路径,然后在用户文件夹下会生成一个.npmrc的文件,用记事本打开后可以看到如下内容:

prefix=C:\dev\nvm\npm

然后继续在命令中输入: npm install npm -g 回车后会发现正在下载npm包,在C:\dev\nvm\npm目录中可以看到下载中的文件,以后我们只要用npm安装包的时候加上 -g 就可以把包安装在我们刚刚配置的全局路径下了。

我们为这个npm配置环境变量: 变量名为:NPM_HOME,变量值为 :C:\dev\nvm\npm

在Path的最前面添加;%NPM_HOME%,注意了,这个一定要添加在 %NVM_SYMLINK%之前,所以我们直接把它放到Path的最前面

最后我们新打开一个命令窗口,输入npm -v,此时我们使用的就是我们统一下载的npm包了。

同样的我们还可以安装cnpm工具,它是中国版的npm镜像库,地址在这里:https://cnpmjs.org/,也是npm官方的一个拷贝,因为我们和外界有一堵墙隔着,所以用这个国内的比较快,淘宝也弄了一个和npm一样的镜像库,http://npm.taobao.org/,它和官方的npm每隔10分钟同步一次。安装方式:

npm install -g cnpm --registry=http://r.cnpmjs.org

或者用淘宝的

npm install -g cnpm --registry=https://registry.npm.taobao.org

安装好了cnpm后,直接执行cnpm install 包名比如:cnpm install bower -g 就可以了。-g只是为了把包安装在全局路径下。如果不全局安装,也可以在当前目录中安装,不用-g就可以了。

mac 下安装 nvm

你可以直接看官网 nvm

要安装或更新nvm,可以使用cURL 使用安装脚本:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

或Wget:

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

注意:如果nvm: command not found在运行安装脚本后得到以下内容之一,可能是以下原因: -

您的系统可能没有 `.bash_profile file,
只需在终端运行touch ~/.bash_profile,然后再次运行上边的命令,
然后可能需要重新启动终端,
如果上述不能解决问题,请打开.bash_profile并添加以下代码行:

source ~/.bashrc

然后运行命令,查看版本

nvm --version

剩下的安装和 windows系统下是一样的了

nrm 的安装

什么是nrm
nrm就是npm registry manager 也就是npm的镜像源管理工具,有时候国外资源太慢,那么我们可以用这个来切换镜像源。

安装nrm

我们只要通过这个命令: npm install -g nrm 就可以实现安装。
注意-g可以直接放到install的后面,我们以后也最好这样用,因为这样用,我们可以在cmd中上下箭头切换最近命令的时候,容易修改,更方便操作。安装完成后,我们就可以使用了。
命令:nrm ls 用于展示所有可切换的镜像地址

Javascript 相关文章推荐
理解JavaScript的caller,callee,call,apply
Apr 28 Javascript
google 搜索框添加关键字实现代码
Apr 24 Javascript
javascript的propertyIsEnumerable()方法使用介绍
Apr 09 Javascript
javascript基本数据类型及类型检测常用方法小结
Dec 14 Javascript
修改vue+webpack run build的路径方法
Sep 01 Javascript
如何实现一个简易版的vuex持久化工具
Sep 11 Javascript
vue动态循环出的多个select出现过的变为disabled(实例代码)
Nov 10 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
Jan 12 Javascript
vue项目前端微信JSAPI与外部H5支付相关实现过程及常见问题
Apr 14 Javascript
JavaScript监听键盘事件代码实现
Jun 03 Javascript
Vue+scss白天和夜间模式切换功能的实现方法
Jan 05 Vue.js
详解Vue的sync修饰符
May 15 Vue.js
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
Feb 06 #Javascript
node.JS的crypto加密模块使用方法详解(MD5,AES,Hmac,Diffie-Hellman加密)
Feb 06 #Javascript
node.js开发辅助工具nodemon安装与配置详解
Feb 06 #Javascript
Vue表单控件数据绑定方法详解
Feb 05 #Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
Feb 05 #Javascript
vue 翻页组件vue-flip-page效果
Feb 05 #Javascript
在博客园博文中添加自定义右键菜单的方法详解
Feb 05 #Javascript
You might like
PHP之数组学习
2011/05/29 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
PHP下判断网址是否有效的代码
2011/10/08 PHP
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
php正确输出json数据的实例讲解
2018/08/21 PHP
JavaScript 常见对象类创建代码与优缺点分析
2009/12/07 Javascript
javascript面向对象的方式实现的弹出层效果代码
2010/01/28 Javascript
ext jquery 简单比较
2010/04/07 Javascript
javascript检测对象中是否存在某个属性判断方法小结
2013/05/19 Javascript
当前页禁止复制粘贴截屏代码小集
2013/07/24 Javascript
浅谈nodeName,nodeValue,nodeType,typeof 的区别
2015/01/13 Javascript
JQuery中attr方法和removeAttr方法用法实例
2015/05/18 Javascript
JavaScript正则表达式中的ignoreCase属性使用详解
2015/06/16 Javascript
js跨域请求的5中解决方式
2015/07/02 Javascript
jQuery实现模仿微博下拉滚动条加载数据效果
2015/12/25 Javascript
AngularJS基础 ng-paste 指令简单示例
2016/08/02 Javascript
详解Sea.js中Module.exports和exports的区别
2017/02/12 Javascript
Vue.js递归组件构建树形菜单
2017/12/24 Javascript
图文详解vue框架安装步骤
2019/02/12 Javascript
详解Vue-Router源码分析路由实现原理
2019/05/15 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
vue中英文切换实例代码
2020/01/21 Javascript
Vue中强制组件重新渲染的正确方法
2021/01/03 Vue.js
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
[01:08:30]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第一场 2月28日
2021/03/11 DOTA
python求素数示例分享
2014/02/16 Python
python中import学习备忘笔记
2017/01/24 Python
python 移除字符串尾部的数字方法
2018/07/17 Python
flask中的wtforms使用方法
2018/07/21 Python
Python面向对象之接口、抽象类与多态详解
2018/08/27 Python
Python实现的序列化和反序列化二叉树算法示例
2019/03/02 Python
将python2.7添加进64位系统的注册表方式
2019/11/20 Python
Python工程师必考的6个经典面试题
2020/06/28 Python
AVI-8手表美国官方商店:AVI-8 USA
2019/04/10 全球购物
高级人员简历的自我评价分享
2013/11/03 职场文书
环保专业大学生职业规划设计
2014/01/10 职场文书