使用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 相关文章推荐
jQueryUI的Dialog的简单封装
Jun 07 Javascript
按钮JS复制文本框和表格的代码
Apr 01 Javascript
javascript变量作用域使用中常见错误总结
Mar 26 Javascript
用Jquery选择器计算table中的某一列某一行的合计
Aug 13 Javascript
JavaScript函数模式详解
Nov 07 Javascript
JS 根据子网掩码,网关计算出所有IP地址范围示例
Apr 23 Javascript
JS制作图形验证码实现代码
Oct 19 Javascript
详解React 的几种条件渲染以及选择
Oct 23 Javascript
Element的el-tree控件后台数据结构的生成以及方法的抽取
Mar 05 Javascript
vue 使用localstorage实现面包屑的操作
Nov 16 Javascript
详解vue 组件注册
Nov 20 Vue.js
ant design vue的form表单取值方法
Jun 01 Vue.js
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注释空格的函数分析(PHP代码压缩)
2013/07/02 PHP
完美解决thinkphp唯一索引重复时出错的问题
2017/03/31 PHP
PHP 实现公历日期与农历日期的互转换
2017/09/13 PHP
php爬取天猫和淘宝商品数据
2018/02/23 PHP
laravel实现前后台路由分离的方法
2019/10/13 PHP
JS控制图片翻转示例代码(兼容firefox,ie,chrome)
2013/12/19 Javascript
用JavaScript实现用一个DIV来包装文本元素节点
2014/09/09 Javascript
Js实现网页键盘控制翻页的方法
2014/10/30 Javascript
javascript关于继承的用法汇总
2014/12/20 Javascript
jQuery制作简洁的多级联动Select下拉框
2014/12/23 Javascript
全面了解JavaScript对象进阶
2016/07/19 Javascript
jQuery Form表单取值的方法
2017/01/11 Javascript
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
2017/05/20 jQuery
使用vue实现简单键盘的示例(支持移动端和pc端)
2017/12/25 Javascript
简单实现vue中的依赖收集与响应的方法
2019/02/18 Javascript
Python smallseg分词用法实例分析
2015/05/28 Python
Python中列表和元组的使用方法和区别详解
2020/12/30 Python
高效测试用例组织算法pairwise之Python实现方法
2017/07/19 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
2018/10/14 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
用Anaconda安装本地python包的方法及路径问题(图文)
2019/07/16 Python
python爬虫爬取某网站视频的示例代码
2021/02/20 Python
CSS3模拟IOS滑动开关效果
2016/09/28 HTML / CSS
CSS3 linear-gradient线性渐变生成加号和减号的方法
2017/11/21 HTML / CSS
过滤器的用法
2013/10/08 面试题
财务管理个人自荐书范文
2013/11/24 职场文书
庆元旦文艺演出主持词
2014/03/27 职场文书
电气工程及其自动化专业毕业生自荐信
2014/06/21 职场文书
2014个人四风对照检查材料思想汇报
2014/09/18 职场文书
向国旗敬礼学生寄语大全
2014/09/30 职场文书
大学生党员个人总结
2015/02/13 职场文书
2015年社区文体活动总结
2015/03/25 职场文书
装修安全责任协议书
2016/03/22 职场文书
导游词之杭州西湖
2019/09/19 职场文书
利用Python判断你的密码难度等级
2021/06/02 Python
Redis基本数据类型Set常用操作命令
2022/06/01 Redis