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 相关文章推荐
JS+CSS实现模仿浏览器网页字符查找功能的方法
Feb 26 Javascript
JavaScript实现简单的二级导航菜单实例
Apr 15 Javascript
基于JavaScript FileReader上传图片显示本地链接
May 27 Javascript
jquery实现上传文件大小类型的验证例子(推荐)
Jun 25 Javascript
bootstrap中使用google prettify让代码高亮的方法
Oct 21 Javascript
BootStrap注意事项小结(五)表单
Mar 10 Javascript
JS按条件 serialize() 对应标签的使用方法
Jul 24 Javascript
使用DataTable插件实现异步加载数据
Nov 19 Javascript
jquery 给动态生成的标签绑定事件的几种方法总结
Feb 24 jQuery
微信小程序 MinUI组件库系列之badge徽章组件示例
Aug 20 Javascript
webpack的pitching loader详解
Sep 23 Javascript
Vue列表如何实现滚动到指定位置样式改变效果
May 09 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
ThinkPHP中的关联模型注意点
2014/06/16 PHP
PHP+iframe图片上传实现即时刷新效果
2016/11/18 PHP
phpmyadmin在宝塔面板里进不去的解决方案
2020/07/06 PHP
让innerHTML的脚本也可以运行起来
2006/07/01 Javascript
javascript学习笔记(一) 在html中使用javascript
2012/06/18 Javascript
jQuery Tools tab使用介绍
2012/07/14 Javascript
JS清除IE浏览器缓存的方法
2013/07/26 Javascript
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
各种常用的JS函数整理
2013/10/25 Javascript
详解JS 比较两个Json对象的值是否相等的实例
2013/11/20 Javascript
JS中的form.submit()不能提交表单的错误原因
2014/10/08 Javascript
JS实现在线统计一个页面内鼠标点击次数的方法
2015/02/28 Javascript
使用Raygun来自动追踪AngularJS中的异常
2015/06/23 Javascript
WEB前端开发框架Bootstrap3 VS Foundation5
2016/05/16 Javascript
全面解析Bootstrap表单样式的使用
2016/09/09 Javascript
js判断价格,必须为数字且不能为负数的实现方法
2016/10/07 Javascript
JS获取年月日时分秒的方法分析
2016/11/28 Javascript
Angular的$http与$location
2016/12/26 Javascript
Vue from-validate 表单验证的示例代码
2017/09/26 Javascript
使用webpack打包koa2 框架app
2018/02/02 Javascript
Vue修改mint-ui默认样式的方法
2018/02/03 Javascript
浅谈Fetch 数据交互方式
2018/12/20 Javascript
layui-table获得当前行的上/下一行数据的例子
2019/09/24 Javascript
python基础教程之对象和类的实际运用
2014/08/29 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
2019/01/17 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
2019/08/20 Python
加拿大女包品牌:Matt & Nat
2017/05/12 全球购物
德购商城:德国进口直邮商城
2017/06/13 全球购物
岳父生日宴会答谢词
2014/01/13 职场文书
捐助倡议书范文
2014/04/15 职场文书
小学学雷锋活动总结
2014/04/25 职场文书
2014年国庆标语
2014/06/30 职场文书
渠道运营商合作协议书范本
2014/10/06 职场文书
2015年12.4全国法制宣传日活动总结
2015/03/24 职场文书
难以忽视的真相观后感
2015/06/05 职场文书
Python爬取英雄联盟MSI直播间弹幕并生成词云图
2021/06/01 Python