使用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 相关文章推荐
[HTML/CSS/Javascript]WWTJS
Sep 25 Javascript
基于jquery的地址栏射击游戏代码
Mar 10 Javascript
JS正则中的RegExp对象对象
Nov 07 Javascript
jQuery判断复选框是否勾选的原理及示例
May 21 Javascript
Bootstrap3制作搜索框样式的方法
Jul 11 Javascript
JavaScript实现邮箱地址自动匹配功能代码
Nov 28 Javascript
使用微信小程序开发前端【快速入门】
Dec 05 Javascript
windows下vue.js开发环境搭建教程
Mar 20 Javascript
es7学习教程之Decorators(修饰器)详解
Jul 21 Javascript
Koa项目搭建过程详细记录
Apr 12 Javascript
js捆绑TypeScript声明文件的方法教程
Apr 13 Javascript
简述Vue中容易被忽视的知识点
Dec 09 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更新购物车数量(表单部分/PHP处理部分)
2013/05/03 PHP
javascript图片相似度算法实现 js实现直方图和向量算法
2014/01/14 Javascript
详解javascript数组去重问题
2015/11/06 Javascript
3种js实现string的substring方法
2015/11/09 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
Jquery元素追加和删除的实现方法
2016/05/24 Javascript
JavaScript实现三级联动菜单效果
2017/08/16 Javascript
JavaScript+CSS相册特效实例代码
2017/09/07 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
2018/04/20 jQuery
JS中获取 DOM 元素的绝对位置实例详解
2018/04/23 Javascript
jQuery实现的点击按钮改变样式功能示例
2018/07/21 jQuery
JS高级技巧(简洁版)
2018/07/29 Javascript
在小程序中使用Echart图表的示例代码
2018/08/02 Javascript
vue js秒转天数小时分钟秒的实例代码
2018/08/08 Javascript
微信小程序实现人脸识别登陆的示例代码
2019/04/02 Javascript
微信小程序云函数使用mysql数据库过程详解
2019/08/07 Javascript
微信小程序地图实现展示线路
2020/07/29 Javascript
在vue项目中封装echarts的步骤
2020/12/25 Vue.js
python使用matplotlib绘制柱状图教程
2017/02/08 Python
Python 利用内置set函数对字符串和列表进行去重的方法
2018/06/29 Python
详解如何将python3.6软件的py文件打包成exe程序
2018/10/09 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
2019/02/26 Python
python函数与方法的区别总结
2019/06/23 Python
Python读取xlsx文件的实现方法
2019/07/04 Python
PyCharm2018 安装及破解方法实现步骤
2019/09/09 Python
使用python计算三角形的斜边例子
2020/04/15 Python
详解Python设计模式之策略模式
2020/06/15 Python
python中有帮助函数吗
2020/06/19 Python
班组长工作职责
2013/12/25 职场文书
大学生两会学习心得体会
2014/03/10 职场文书
网吧最新创业计划书范文
2014/03/27 职场文书
爱心倡议书范文
2014/05/12 职场文书
党员承诺书格式
2014/05/21 职场文书
无犯罪记录证明
2014/09/19 职场文书
2019XX公司员工考核管理制度!
2019/08/07 职场文书
如何使JavaScript休眠或等待
2021/04/27 Javascript