node.js版本管理工具n无效的原理和解决方法


Posted in Javascript onNovember 24, 2016

简介

n 是 node 的一个模块,可以用它来管理 node 的各种版本。类似 Python 中的 pyenv 和 Ruby 的 rbenv。n 的作者是著名的TJ大神。

通过 npm 安装 n:

$ npm install -g n

查看当前 node 版本:

$ node -v
v4.2.4

通过 n 安装指定版本:

$ n 4.4.4
install : node-v4.4.4
    mkdir : /opt/node/n/versions/node/4.4.4
    fetch : https://nodejs.org/dist/v4.4.4/node-v4.4.4-linux-x64.tar.gz
###################################100.0%
  installed : v4.2.4

再查看当前 node 版本:

$ node -v
v4.2.4 #和原来一样

解决方法

如果你跟我一样,发现 node 版本没有任何变化,那最有可能的情况就是,你的node的安装目录和 n 默认的路径不一样。

查看 node 当前安装路径:

$ which node
/opt/node/bin/node #举个例子

而 n 默认安装路径是 /usr/local,若你的 node 不是在此路径下,n 切换版本就不能把bin、lib、include、share 复制该路径中,所以我们必须通过N_PREFIX变量来修改 n 的默认node安装路径。

编辑环境配置文件:

vim ~/.bash_profile

将下面两行代码插入到文件末尾:

export N_PREFIX=/opt/node #node实际安装位置
export PATH=$N_PREFIX/bin:$PATH

:wq保存退出;

执行source使修改生效。

$ source ~/.bash_profile

确认一下环境变量是否生效:

echo $N_PREFIX
/opt/node

这时候我们需要重新安装:

$ n 4.4.4
install : node-v4.4.4
    mkdir : /opt/node/n/versions/node/4.4.4
    fetch : https://nodejs.org/dist/v4.4.4/node-v4.4.4-linux-x64.tar.gz
##############100.0%
  installed : v4.4.4

再查看当前 node 版本:

$ node -v
v4.4.4

说明修改成功。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JavaScript 事件记录使用说明
Oct 20 Javascript
jQuery库与其他JS库冲突的解决办法
Feb 07 Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
Sep 02 Javascript
JS实现支持Ajax验证的表单插件
Mar 24 Javascript
JS中常用的输出方式(五种)
Jun 12 Javascript
原生JS实现简单放大镜效果
Feb 08 Javascript
微信小程序商城项目之淘宝分类入口(2)
Apr 17 Javascript
vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单
Nov 29 Javascript
解决layer.msg 不居中 ifram中的问题
Sep 05 Javascript
JS实现贪吃蛇游戏
Nov 15 Javascript
Javascript原生ajax请求代码实例
Feb 20 Javascript
JS轮播图的实现方法
Aug 24 Javascript
jQuery实现表格与ckeckbox的全选与单选功能
Nov 24 #Javascript
自定义require函数让浏览器按需加载Js文件
Nov 24 #Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
Nov 24 #Javascript
完美解决IE不支持Data.parse()的问题
Nov 24 #Javascript
JS 终止执行的实现方法
Nov 24 #Javascript
JS/jQuery判断DOM节点是否存在的简单方法
Nov 24 #Javascript
jquery网页日历显示控件calendar3.1使用详解
Nov 24 #Javascript
You might like
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
2013/07/01 PHP
PHP Swoole异步Redis客户端实现方法示例
2019/10/24 PHP
Js 时间函数getYear()的使用问题探讨
2013/04/01 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
2014/07/04 Javascript
浅析Javascript中“==”与“===”的区别
2014/12/23 Javascript
JavaScript将数字转换成大写中文的方法
2015/03/23 Javascript
JQuery日历插件My97DatePicker日期范围限制
2016/01/20 Javascript
Angular 路由route实例代码
2016/07/12 Javascript
Vue.js每天必学之Class与样式绑定
2016/09/05 Javascript
Bootstrap如何创建表单
2016/10/21 Javascript
AngularJS指令与指令之间的交互功能示例
2016/12/14 Javascript
js读取json文件片段中的数据实例
2017/03/09 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
IntersectionObserver实现图片懒加载的示例
2017/09/29 Javascript
深入理解Vue官方文档梳理之全局API
2017/11/22 Javascript
解析vue data不可以使用箭头函数问题
2018/07/03 Javascript
vue中使用protobuf的过程记录
2018/10/26 Javascript
React事件处理的机制及原理
2018/12/03 Javascript
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
2019/09/23 Javascript
vue下拉刷新组件的开发及slot的使用详解
2020/12/23 Vue.js
[01:03:33]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python实现csv格式文件转为asc格式文件的方法
2018/03/23 Python
如何利用Anaconda配置简单的Python环境
2019/06/24 Python
Python使用type关键字创建类步骤详解
2019/07/23 Python
对django2.0 关联表的必填on_delete参数的含义解析
2019/08/09 Python
Django url,从一个页面调到另个页面的方法
2019/08/21 Python
wxPython实现文本框基础组件
2019/11/18 Python
Pytorch 多块GPU的使用详解
2019/12/31 Python
阿里云:Aliyun.com
2017/02/15 全球购物
《罗布泊,消逝的仙湖》教学反思
2014/03/01 职场文书
运动员口号
2014/06/09 职场文书
单位委托书
2014/10/15 职场文书
暑假社会实践证明格式
2014/10/28 职场文书
2014年终工作总结范本
2014/12/15 职场文书
2016年教师学习廉政准则心得体会
2016/01/20 职场文书
Golang的继承模拟实例
2021/06/30 Golang