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 相关文章推荐
XMLHTTPRequest的属性和方法简介
Nov 23 Javascript
javascript判断用户浏览器插件安装情况的代码
Jan 01 Javascript
javascript 拖动表格行实现代码
May 05 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
Oct 20 Javascript
Angular1.x复杂指令实例详解
Mar 01 Javascript
使用JS动态显示文本
Sep 09 Javascript
解决微信小程序防止无法回到主页的问题
Sep 28 Javascript
详解jenkins自动化部署vue
May 14 Javascript
vue框架制作购物车小球动画效果实例代码
Sep 26 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
Jan 06 Javascript
微信小程序 获取手机号 JavaScript解密示例代码详解
May 14 Javascript
Angular8 简单表单验证的实现示例
Jun 03 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
通过ICQ网关发送手机短信的PHP源程序
2006/10/09 PHP
php学习笔记之面向对象编程
2012/12/29 PHP
PHP提交表单失败后如何保留已经填写的信息
2014/06/20 PHP
php实现给图片加灰色半透明效果的方法
2014/10/20 PHP
PHP简单遍历对象示例
2016/09/28 PHP
PHP中PDO事务处理操作示例
2018/05/02 PHP
简单JS代码压缩器
2006/10/12 Javascript
js图片延迟加载的实现方法及思路
2013/07/22 Javascript
JS常用字符串处理方法应用总结
2014/05/22 Javascript
Javascript基础教程之JavaScript语法
2015/01/18 Javascript
jQuery获得子元素个数的方法
2015/04/14 Javascript
js日期范围初始化得到前一个月日期的方法
2015/05/05 Javascript
javascript随机抽取0-100之间不重复的10个数
2016/02/25 Javascript
jQuery获取剪贴板内容的方法
2016/06/16 Javascript
AngularJs Managing Service Dependencies详解
2016/09/02 Javascript
详解node如何让一个端口同时支持https与http
2017/07/04 Javascript
最后说说Vue2 SSR 的 Cookies 问题
2018/05/25 Javascript
AngularJS中ng-options实现下拉列表的数据绑定方法
2018/08/13 Javascript
Vue学习之axios的使用方法实例分析
2020/01/06 Javascript
[02:38]DOTA2亚洲邀请赛小组赛精彩集锦:Wings完美团击溃对手
2017/03/29 DOTA
[59:00]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第一场 3月7日
2021/03/11 DOTA
解密Python中的描述符(descriptor)
2015/06/03 Python
Python读大数据txt
2016/03/28 Python
浅谈pandas中shift和diff函数关系
2018/04/08 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
2018/06/04 Python
基于python的opencv图像处理实现对斑马线的检测示例
2020/11/29 Python
Django中template for如何使用方法
2021/01/31 Python
html5实现多图片预览上传及点击可拖拽控件
2018/03/15 HTML / CSS
印度尼西亚综合购物网站:Lazada印尼
2016/09/07 全球购物
Tiqets英国:智能手机上的文化和娱乐门票
2019/07/10 全球购物
金士达面试非笔试
2012/03/14 面试题
财务部出纳岗位职责
2013/12/22 职场文书
班组长工作职责
2013/12/25 职场文书
结婚典礼证婚词
2014/01/11 职场文书
导游个人求职信范文
2014/03/23 职场文书
好段摘抄大全(48句)
2019/08/08 职场文书