利用n 升级工具升级Node.js版本及在mac环境下的坑


Posted in Javascript onFebruary 15, 2017

一、利用n 升级Node.js

最近在用NPM安装一个nodejs工具时发现,我的nodejs的版本有些旧了。这不是大问题,只要升级就可以了,当然,重新从nodejs.org最新版本是一种方法,但我想应该有更简单的方法,那就是使用 n 这个工具包,我们可以使用NPM先安装 n 工具包,然后用它升级nodejs,十分的方便。

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

上面这是使用 n 来安装最新的稳定版的nodejs。

n 是一个Node工具包,它提供了几个升级命令参数:

  1. n                              显示已安装的Node版本
  2. n latest                       安装最新版本Node
  3. n stable                       安装最新稳定版Node
  4. n lts                          安装最新长期维护版(lts)Node
  5. n <version>                    根据提供的版本号安装Node

比如,你想安装指定的版本号:

sudo n 0.8.21

一旦安装完成,你可以通过下面的命令确认安装的版本:

node -v

二、mac环境下的测试

本文环境基于Mac OS X EI Capitan V10.11.4,应该是mac环境的通病。

在命令行里输入(网上的方法):

sudo npm install -g n

接着又输入 sudo n stable

然后命令行里开始显示百分比,从1% 慢慢变到100%,我以为更新完了,结果。。。

输入 node -v 显示:

dyld: Symbol not found:
 Referenced from: /usr/local/bin/node
 Expected in: /usr/lib/libstdc++.6.dylib
 Trace/BPT trap: 5

然后就知道麻烦来了,总之,npm后都是这样子,网上百度各种办法,重装gcc , 卸载node重装, 添加环境变量等等。。。。

反正各种方法都行不同, 真不知道 n 这个工具到底是否能够在mac上用,反正好多人遇到类似办法都没有解决。

抛弃n工具

既然n不能够在我的mac上起到升级作用,且还搞坏了node系统,且网上没有搜到有效的相关解决方案,那边只好卸载完全卸载node后重装了。

由于用了brew安装的node ,用  brew uninstall node 卸载node后发现还是没有解决问题。

那么一定是这个命令没有完全卸载node,那么只好自己手动卸载了。

cd 到根目录

find . -name "node"
 find . -name "npm"

删除所有搜索与node相关的结果

重新 brew instll node

安装结束肯能会提示err:

Error: The `brew link` step did not complete successfully
 The formula built, but is not symlinked into /usr/local
 Could not symlink lib/dtrace/node.d
 Target /usr/local/lib/dtrace/node.d
 already exists. You may want to remove it:
 rm '/usr/local/lib/dtrace/node.d'

 To force the link and overwrite all conflicting files:
 brew link --overwrite node

不用慌张,安照错误提示操作

rm '/usr/local/lib/dtrace/node.d'` 
brew link --overwrite node

重新运行命令发现node -v 安装成功了。npm -v后确认,重装成果。

node又恢复正常了!所以在mac环境下要慎用n升级工具来升级node.js版本。

总结

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

Javascript 相关文章推荐
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
Mar 06 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
Jan 08 Javascript
jQuery Mobile页面跳转后未加载外部JS原因分析及解决
Mar 18 Javascript
js判断选择时间不能小于当前时间的示例代码
Sep 24 Javascript
javascript匿名函数应用示例介绍
Mar 07 Javascript
深入浅析Vue组件开发
Nov 25 Javascript
jquery实现图片放大点击切换
Jun 06 jQuery
jQuery使用zTree插件实现可拖拽的树示例
Sep 23 jQuery
详解node child_process模块学习笔记
Jan 24 Javascript
JavaScript 引用类型实例详解【数组、对象、严格模式等】
May 13 Javascript
如何区分vue中的v-show 与 v-if
Sep 08 Javascript
js中Map和Set的用法及区别实例详解
Feb 15 Javascript
JS原型与原型链的深入理解
Feb 15 #Javascript
js中数组插入、删除元素操作的方法
Feb 15 #Javascript
jQuery中on方法使用注意事项详解
Feb 15 #Javascript
防止重复发送 Ajax 请求
Feb 15 #Javascript
Input文本框随着输入内容多少自动延伸的实现
Feb 15 #Javascript
利用Jquery实现几款漂亮实用的时间轴(附示例代码)
Feb 15 #Javascript
js记录点击某个按钮的次数-刷新次数为初始状态的实例
Feb 15 #Javascript
You might like
JAVA/JSP学习系列之七
2006/10/09 PHP
php中截取字符串支持utf-8
2007/01/18 PHP
PHP 长文章分页函数 带使用方法,不会分割段落,翻页在底部
2009/10/22 PHP
PHP常用技术文之文件操作和目录操作总结
2014/09/27 PHP
PHP5.2中PDO的简单使用方法
2016/03/25 PHP
CI框架数据库查询之join用法分析
2016/05/18 PHP
phpmyadmin在宝塔面板里进不去的解决方案
2020/07/06 PHP
myeclipse安装jQuery插件的方法
2011/03/29 Javascript
JS命名空间的另一种实现
2013/08/09 Javascript
使用js实现关闭js弹出层的窗口
2014/02/10 Javascript
wap浏览自动跳转到wap页面的js代码
2014/05/17 Javascript
浅谈js中startsWith 函数不能在任何浏览器兼容的问题
2017/03/01 Javascript
Bootstrap模态框案例解析
2017/03/05 Javascript
JS组件系列之MVVM组件构建自己的Vue组件
2017/04/28 Javascript
jQuery复合事件结合toggle()方法的用法示例
2017/06/10 jQuery
angular.extend方法的具体使用
2017/09/14 Javascript
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
2019/05/14 Javascript
你可能从未使用过的11+个JavaScript特性(小结)
2020/01/08 Javascript
[42:20]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
python实现根据用户输入从电影网站获取影片信息的方法
2015/04/07 Python
python开发中module模块用法实例分析
2015/11/12 Python
TensorFlow平台下Python实现神经网络
2018/03/10 Python
python批量下载网站马拉松照片的完整步骤
2018/12/05 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
2020/03/11 Python
Jupyter Notebook远程登录及密码设置操作
2020/04/10 Python
June Jacobs尊积帕官网:知名的spa水疗护肤品牌
2019/03/21 全球购物
马来西亚排名第一的宠物用品店:Pets Wonderland
2020/04/16 全球购物
教育学专业毕业生的自我鉴定
2013/11/26 职场文书
诚实守信道德模范事迹材料
2014/08/15 职场文书
2015年助残日活动总结
2015/03/27 职场文书
长江七号观后感
2015/06/11 职场文书
2015初中政治教学工作总结
2015/07/21 职场文书
Redis命令处理过程源码解析
2022/02/12 Redis
SpringCloud Feign请求头删除修改的操作代码
2022/03/20 Java/Android
JS函数式编程实现XDM一
2022/06/16 Javascript