使用nvm和nrm优化node.js工作流的方法


Posted in Javascript onJanuary 17, 2019

对于一个 Web 开发从业人员的电脑,node.js 和它的 npm 包管理工具那是少不了的,但是 node.js 的更新速度是非常快的,而生产环境一般选择使用 LTS(Long-term Support)版本,如何高效切换 node.js 的版本呢?对,使用 nvm。

使用 nvm

首先安装 nvm(github),使用官方文档的方法安装:

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

或者使用Wget:

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

然后可以下面的配置放入你的系统环境变量的文件中(通常安装过程中已经自动添加了),通常是这个文件就是 .bash_profile,在你的用户名文件夹下:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

好了,这时候直接输入 nvm 这个命令会出现 nvm: command not found,这是需要重新启动一下你的命令行工具就行了。

重新之后,我就可以使用它来管理我们的 node.js 的版本了。

安装最新版 node.js:

nvm install node

列出可以安装的 node.js 的版本:

nvm ls-remote

安装 node.js 某个具体版本,比如常用的 6.10.0:

nvm install v6.10.0

安装最新版,稳定版,lts 版本

nvm install node
nvm install stable
nvm install lts/*

安装 Node 新版本的同时,从另外一个仓库重新安装以前的包

nvm install node --reinstall-packages-from=v6.10.0

列出电脑中目前安装的所有的 node.js 的版本:

nvm list

看到了所有的可用的版本号,我们来切换版本:

nvm use v7.7.1

好了,熟悉这行常用命令已经够用了。但是,对于国内用户,还有个问题未解决,就是包管理工具 npm,经常安装一些包时会因为网络问题会出错,这是英文安装源是在国外服务器,现在我们想切换安装源的地址怎么办?对,使用 nrm。

使用 nrm

首先全局安装 nrm:

npm install -g nrm

安装完后就可以立即使用了,我们来列出可用的源:

nrm ls

会发现列出了下面几个源:

npm ---- https://registry.npmjs.org/
cnpm --- http://r.cnpmjs.org/
taobao - https://registry.npm.taobao.org/
nj ----- https://registry.nodejitsu.com/
rednpm - http://registry.mirror.cqupt.edu.cn/
npmMirror  https://skimdb.npmjs.com/registry/
edunpm - http://registry.enpmjs.org/

当然这里我们选择国内淘宝的源:

nrm use taobao

好了一切大功告成!

更简单的 Node 版本管理工具 n

另一款更简单好用的 Node 版本管理工具,它本身是一个 Node 模块,叫做 n.

安装 n 非常简单:

npm -g install n

要使用 n 安装特定版本的 node,只需要如下命令:

n stable #安装最新的稳定版
n lts #安装最新的 LTS 版
n 6.9.0 #安装特定的 v6.9.0 版本

安装完成多个版本后,直接输入不带参数的 n 命令,会出现一个已安装版本的列表,用键盘上下键选择版本,然后回车,就可以切换默认 Node 版本。

假如我们将默认的 Node 版本设置为 6.10.0 了,而我们要使用 7.6.0 启动某个应用,也非常简单,只需要:

n use 7.6.0 index.js

最后,我们可以创建一个快捷的命令:

echo alias node7="\"n use 7.6.0 --harmony-async-await\"" >> ~/.bashrc
source ~/.bashrc

这样我们就可以愉快地使用 node v7.x.x 运行我们的 js 了:

node7 index.js

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
对 lightbox JS 图片控件进行了一下改造, 使其他支持复杂的图片说明
Mar 20 Javascript
JQuery EasyUI 对话框的使用方法
Oct 24 Javascript
js的延迟执行问题分析
Jun 23 Javascript
2014年50个程序员最适用的免费JQuery插件
Dec 15 Javascript
深入理解JavaScript系列(48):对象创建模式(下篇)
Mar 04 Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
Jun 08 Javascript
angularJS+requireJS实现controller及directive的按需加载示例
Feb 20 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
Nov 19 Javascript
Parcel.js + Vue 2.x 极速零配置打包体验教程
Dec 24 Javascript
vue滚动插件better-scroll使用详解
Oct 18 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
Jan 22 Javascript
处理JavaScript值为undefined的7个小技巧
Jul 28 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
Jan 17 #Javascript
微信小程序使用wxParse解析html的方法示例
Jan 17 #Javascript
nvm、nrm、npm 安装和使用详解(小结)
Jan 17 #Javascript
JavaScript之实现一个简单的Vue示例
Jan 17 #Javascript
如何能分清npm cnpm npx nvm
Jan 17 #Javascript
JavaScript设计模式之装饰者模式实例详解
Jan 17 #Javascript
npm 常用命令详解(小结)
Jan 17 #Javascript
You might like
PHP实现Google plus的好友拖拽分组效果
2016/10/21 PHP
PHP实现用session来实现记录用户登陆信息
2018/10/15 PHP
js模拟弹出效果代码修正版
2008/08/07 Javascript
基于jquery的loading 加载提示效果实现代码
2011/09/01 Javascript
js日期、星座的级联显示代码
2014/01/23 Javascript
jquery访问ashx文件示例代码
2014/08/11 Javascript
JSON字符串转换JSONObject和JSONArray的方法
2016/06/03 Javascript
关于json字符串与实体之间的严格验证代码
2016/11/10 Javascript
Angular.js自动化测试之protractor详解
2017/07/07 Javascript
JS简单获得节点元素的方法示例
2018/02/10 Javascript
vue 每次渲染完页面后div的滚动条保持在最底部的方法
2018/03/17 Javascript
layui弹出层按钮提交iframe表单的方法
2018/08/20 Javascript
vue实现的双向数据绑定操作示例
2018/12/04 Javascript
three.js实现圆柱体
2018/12/30 Javascript
CountUp.js数字滚动插件使用方法详解
2019/10/17 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
2020/02/05 Javascript
JS中多层次排序算法的实现代码
2021/01/06 Javascript
python实现将一个数组逆序输出的方法
2018/06/25 Python
python3 kmp 字符串匹配的方法
2018/07/07 Python
python使用递归的方式建立二叉树
2019/07/03 Python
django组合搜索实现过程详解(附代码)
2019/08/06 Python
Python判断字符串是否xx开始或结尾的示例
2019/08/08 Python
Django错误:TypeError at / 'bool' object is not callable解决
2019/08/16 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
2019/09/18 Python
python爬虫爬取笔趣网小说网站过程图解
2019/11/18 Python
JAVA SWT事件四种写法实例解析
2020/06/05 Python
python如何将图片转换素描画
2020/09/08 Python
详解Selenium 元素定位和WebDriver常用方法
2020/12/04 Python
C++和python实现阿姆斯特朗数字查找实例代码
2020/12/07 Python
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
将时尚融入珠宝:Adornmonde
2019/10/17 全球购物
数控技术与应用毕业生自荐信
2013/09/24 职场文书
环保专项行动方案
2014/05/12 职场文书
好媳妇事迹材料
2014/12/24 职场文书
Python 中面向接口编程
2022/05/20 Python
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android