使用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 相关文章推荐
js中style.display=""无效的解决方法
Oct 30 Javascript
jQuery焦点控制图层展示延迟隐藏的方法
Mar 09 Javascript
原生js实现模拟滚动条
Jun 15 Javascript
原生JS和jQuery版实现文件上传功能
Apr 18 Javascript
jquery基本选择器匹配多个元素的实现方法
Sep 05 Javascript
webix+springmvc session超时跳转登录页面
Oct 30 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
Dec 02 Javascript
利用JS判断鼠标移入元素的方向
Dec 11 Javascript
解决layui 复选框等内置控件不显示的问题
Aug 14 Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
Aug 31 Javascript
Node.js 使用request模块下载文件的实例
Sep 05 Javascript
如何让微信小程序页面之间的通信不再变困难
Jun 03 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 set_error_handler()函数使用详解(示例)
2013/11/12 PHP
PHP使用ODBC连接数据库的方法
2015/07/18 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
2017/05/19 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
初学Jquery插件制作 在SageCRM的查询屏幕隐藏部分行的功能
2011/12/26 Javascript
javascript学习笔记(八)正则表达式
2014/10/08 Javascript
js获取微信版本号的方法
2015/05/12 Javascript
JavaScript仿静态分页实现方法
2015/08/04 Javascript
jQuery实现可编辑的表格实例讲解(2)
2015/09/17 Javascript
localStorage的黑科技-js和css缓存机制
2017/02/06 Javascript
javascript中json对象json数组json字符串互转及取值方法
2017/04/19 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
从零开始封装自己的自定义Vue组件
2018/10/09 Javascript
支付宝小程序自定义弹窗dialog插件的实现代码
2018/11/30 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
2018/12/03 Javascript
Python random模块(获取随机数)常用方法和使用例子
2014/05/13 Python
Python中的getopt函数使用详解
2015/07/28 Python
Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案
2017/02/13 Python
Python遍历文件夹和读写文件的实现方法
2017/05/10 Python
对python append 与浅拷贝的实例讲解
2018/05/04 Python
python将txt文件读取为字典的示例
2018/12/22 Python
Python使用字典的嵌套功能详解
2019/02/27 Python
Django 导出项目依赖库到 requirements.txt过程解析
2019/08/23 Python
Python xlrd excel文件操作代码实例
2020/03/10 Python
Python实现像awk一样分割字符串
2020/09/15 Python
美国最大的万圣节服装网站:HalloweenCostumes.com
2017/10/12 全球购物
澳大利亚最大的网上油画销售画廊:Direct Art Australia
2018/04/15 全球购物
女性时尚在线:IVRose
2019/02/23 全球购物
几道PHP的面试题
2012/05/19 面试题
广州一家公司的.NET面试题
2016/06/11 面试题
用C#语言写出与SQLSERVER访问时的具体过程
2013/04/16 面试题
大学生创业计划书的用途
2014/01/08 职场文书
护士找工作求职信
2014/07/02 职场文书
公安机关纪律作风整顿个人剖析材料材料
2014/10/10 职场文书
法制主题班会教案
2015/08/13 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书