使用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 相关文章推荐
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
Feb 15 Javascript
jQuery与其它库冲突的解决方法
Jun 25 Javascript
jQuery点击弹出下拉菜单的小例子
Aug 01 Javascript
jquery自定义右键菜单、全选、不连续选择
Mar 01 Javascript
JavaScript省市区三级联动菜单效果
Sep 21 Javascript
原生js的RSA和AES加密解密算法
Oct 08 Javascript
jquery操作ID带有变量的节点实例
Dec 07 Javascript
vue 添加vux的代码讲解
Nov 30 Javascript
基于axios封装fetch方法及调用实例
Feb 05 Javascript
js动态获取时间的方法分析
Aug 02 Javascript
layui自定义工具栏的方法
Sep 19 Javascript
React实现评论的添加和删除
Oct 20 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
discuz论坛 用户登录 后台程序代码
2008/11/27 PHP
IP138 IP地址查询小偷实现代码
2010/02/15 PHP
php图片加水印原理(超简单的实例代码)
2013/01/18 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
2013/06/13 PHP
PHP实现今天是星期几的几种写法
2013/09/26 PHP
javascript中的=等号个数问题两个跟三个有什么区别
2013/10/23 Javascript
纯javascript实现分页(两种方法)
2015/08/26 Javascript
JavaScript实现上下浮动的窗口效果代码
2015/10/12 Javascript
基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式
2015/10/28 Javascript
web 前端常用组件之Layer弹出层组件
2016/09/22 Javascript
JQueryEasyUI之DataGrid数据显示
2016/11/23 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
2017/06/27 Javascript
Vue.js学习笔记之常用模板语法详解
2017/07/25 Javascript
js阻止默认右键的下拉菜单方法
2018/01/02 Javascript
vue 移动端注入骨架屏的配置方法
2019/06/25 Javascript
Vue快速实现通用表单验证的示例代码
2020/01/09 Javascript
Python cookbook(数据结构与算法)筛选及提取序列中元素的方法
2018/03/19 Python
python 限制函数调用次数的实例讲解
2018/04/21 Python
Python中的 enum 模块源码详析
2019/01/09 Python
PyCharm安装Markdown插件的两种方法
2019/06/24 Python
python 中pyqt5 树节点点击实现多窗口切换问题
2019/07/04 Python
利用python开发app实战的方法
2019/07/09 Python
python并发编程多进程 模拟抢票实现过程
2019/08/20 Python
Python爬虫解析网页的4种方式实例及原理解析
2019/12/30 Python
Python list运算操作代码实例解析
2020/01/20 Python
python 使用递归回溯完美解决八皇后的问题
2020/02/26 Python
用ldap作为django后端用户登录验证的实现
2020/12/07 Python
世界上最大的冷却器制造商:Igloo Coolers
2019/07/23 全球购物
Edwaybuy西班牙:小米在线商店
2019/12/04 全球购物
模具专业自荐信
2014/05/29 职场文书
创先争优活动心得体会
2014/09/04 职场文书
学习党代会心得体会
2014/09/05 职场文书
处罚决定书范文
2015/06/24 职场文书
《酸的和甜的》教学反思
2016/02/18 职场文书
检举信的写法
2019/04/10 职场文书
postman中form-data、x-www-form-urlencoded、raw、binary的区别介绍
2022/01/18 HTML / CSS