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

简介

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

说明修改成功。

总结

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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索nodejs
, node
, n
, 版本管理
, 切换版本
版本切换
ztree selectnode无效、ztree expandnode无效、ztree updatenode无效、node express命令无效、node 命令无效,以便于您获取更多的相关知识。

时间: 2024-09-17 04:23:08

node.js版本管理工具n无效的原理和解决方法_node.js的相关文章

node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法_node.js

发现错误 最近在用Nodejs发送https请求时候,出现\"Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE\"的错误,错误如下: events.js:72 throw er; // Unhandled \'error\' event ^ Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE at SecurePair. (tls.js:1381:32) at SecurePair.emit (events.js:92:17) at

node.js缺少mysql模块运行报错的解决方法_node.js

发现问题 在用node.js连接数据库,运行报错:cannot find module 'mysql: 然后 在管理员和用户下分别用npm安装数据库但是都是失败: 解决方法 按照错误日志应该是找不到文件夹,无法打开package.json这个文件,刚开始没有理解这个错误,最后我进入到project目录运行npm安装数据库成功: 在项目的modules下面也有这个模块了: 总结

Node.js抓取中文网页乱码问题和解决方法_node.js

Node.js 抓取非 utf-8 的中文网页时会出现乱码问题,比如网易的首页编码是 gb2312,抓取时会出现乱码 复制代码 代码如下: var request = require('request')  var url = 'http://www.163.com' request(url, function (err, res, body) {      console.log(body) }) 可以使用 iconv-lite 来解决 安装 复制代码 代码如下: npm install ic

node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法_node.js

在使用npm install安装扩展插件时,系统提示"npm install Error: ENOENT, stat 'C:Users<用户名>AppDataRoamingnpm'". 以前都是很顺利的安装过程,没出现这种情况.我这里的解决办法是直接创建上面提示的目录就好了,应该是node.js权限不够,在此备注. 有时候就是这样,很可能一个很久都无法解决的问题,实际解决方法很简单,就是这么任性!!

使用node.js中的Buffer类处理二进制数据的方法_node.js

前言 在Node.js中,定义了一个Buffer类,该类用来创建一个专门存放二进制数据的缓存区.这篇文章就详细介绍了node.js中的Buffer类处理二进制数据的方法,下面话不多说,来看看详细的介绍. 创建Buffer对象 第一种:直接使用一个数组来初始化缓存区 var arr = [0,1,2] var buf = new Buffer(arr) console.log(buf) 执行效果: 第二种:直接使用一个字符串来初始化缓存区 var str = 'hello' var buf = n

Node.js中防止错误导致的进程阻塞的方法_node.js

在Node.js中,当某个回调函数发生了错误,整个进程都会崩溃,影响后面的代码执行. Node.js这样处理,是因为在发生未被捕获的错误时,进程的状态就不确定.之后也就无法正常工作了.如果错误始终不处理的话,就回一直抛出意料之外的错误,这样不利于调试. 防止错误导致的进程阻塞的方法主要有如下两种: 一. try-catch try-catch允许进行异常捕获,并让代码继续执行下去: 例如: 当函数抛出错误时,代码就停止执行了: (function() { var a = 0; a(); cons

Node.js读写文件之批量替换图片的实现方法_node.js

问题:文件夹A中有大量图片文件,需要用另外一个图片替换掉A中图片,但是命名保持不变. 手工的做法如下: 1)浏览器打开图片->2)另存为->3)目标文件夹->4)找到一个图片->5)替换->6)确定 然后,重复步骤2)和之后的步骤.不小心会漏掉或重复. 这么麻烦,使用node.js来处理改如何呢?代码如下: var fs=require('fs'), cp=require('child_process'); var url='Moriarty.jpg' var rs=fs.r

node-webkit打包成exe文件被360误报木马的解决方法_node.js

最近项目需要用到node-webkit.处理古老级用户的兼容以及他们心里的'数据安全'问题. 1.下载完node-webkit 2.制作appName.nw文件 3.copy /b nw.exe+appName.nw  TestAppName.exe 到目前为止,目录下生成了TestAppName.exe文件 ,双击运行很完美. 但,直接将TestAppName.exe换个目录,却打不开. google+百度的解决方案:使用Enigma Virtual Box工具,打包成exe文件.(Enigm

nodejs 提示‘xxx’ 不是内部或外部命令解决方法_node.js

一般出现这样的问题原因是npm安装出现了问题,全局模块目录没有被添加到系统环境变量. Windows用户检查下npm的目录是否加入了系统变量PATH中,如果不存在需要手动添加,添加之后需要重新启动CMD控制台. nodejs模块全局目录环境变量 npm目录可以使用npm命令去查找:npm config get prefix 好了,问题解决了吧,是不是超级简单实用呢,希望本文能对大家有所帮助.