使用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 相关文章推荐
url 特殊字符 传递参数解决方法
Jan 01 Javascript
转义字符(\)对JavaScript中JSON.parse的影响概述
Jul 17 Javascript
javascript图片相似度算法实现 js实现直方图和向量算法
Jan 14 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
Mar 04 Javascript
jQuery在ul中显示某个li索引号的方法
Mar 17 Javascript
实例讲解jquery中mouseleave和mouseout的区别
Feb 17 Javascript
Vue 2.0+Vue-router构建一个简单的单页应用(附源码)
Mar 14 Javascript
AngularJS 单选框及多选框的双向动态绑定
Apr 20 Javascript
vue axios 二次封装的示例代码
Dec 08 Javascript
Vue组件的使用及个人理解与介绍
Feb 09 Javascript
ES6知识点整理之函数数组参数的默认值及其解构应用示例
Apr 17 Javascript
Vue.js实现tab切换效果
Jul 24 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统计二维数组元素个数的方法
2013/11/12 PHP
codeigniter中测试通过的分页类示例
2014/04/17 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
PHP中遇到的时区问题解决方法
2015/07/23 PHP
php实现json编码的方法
2015/07/30 PHP
Thinkphp实现自动验证和自动完成
2015/12/19 PHP
PHP与Ajax相结合实现登录验证小Demo
2016/03/16 PHP
浅析php-fpm静态和动态执行方式的比较
2016/11/09 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
PHP实现普通hash分布式算法简单示例
2018/08/06 PHP
JavaScript将字符串转换成字符编码列表的方法
2015/03/19 Javascript
WordPress中利用AJAX技术进行评论提交的实现示例
2016/01/12 Javascript
window.open不被拦截的简单实现代码(推荐)
2016/08/04 Javascript
浅谈html转义及防止javascript注入攻击的方法
2016/12/04 Javascript
vue.js学习之vue-cli定制脚手架详解
2017/07/02 Javascript
简单实现js进度条加载效果
2020/03/25 Javascript
Angular2 组件间通过@Input @Output通讯示例
2017/08/24 Javascript
webpack构建换肤功能的思路详解
2017/11/27 Javascript
webpack 动态批量加载文件的实现方法
2020/03/19 Javascript
解决echarts数据二次渲染不成功的问题
2020/07/20 Javascript
python监控linux内存并写入mongodb(推荐)
2017/09/11 Python
Python3中类、模块、错误与异常、文件的简易教程
2017/11/20 Python
Python使用matplotlib绘制随机漫步图
2018/08/27 Python
Python二次规划和线性规划使用实例
2019/12/09 Python
使用Python对Dicom文件进行读取与写入的实现
2020/04/20 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
2020/05/27 Python
css3 给背景设置渐变色的方法
2019/09/12 HTML / CSS
css3利用transform变形结合事件完成扇形导航
2020/10/26 HTML / CSS
美国室内盆栽植物购买网站:Plants.com
2020/04/24 全球购物
毕业生自我鉴定实例
2014/01/21 职场文书
初一体育教学反思
2014/01/29 职场文书
爱护公共设施的标语
2014/06/24 职场文书
颐和园导游词400字
2015/01/30 职场文书
电话营销开场白
2015/05/29 职场文书
活动宣传稿范文
2015/07/23 职场文书