利用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 相关文章推荐
innerText和textContent对比及使用介绍
Feb 27 Javascript
JS继承用法实例分析
Feb 05 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
Mar 03 Javascript
AngularJS实现表单手动验证和表单自动验证
Dec 09 Javascript
jQuery插件FusionCharts实现的3D柱状图效果实例【附demo源码下载】
Mar 03 Javascript
微信小程序如何获取用户信息
Jan 26 Javascript
详解vue路由篇(动态路由、路由嵌套)
Jan 27 Javascript
用js简单提供增删改查接口
May 12 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
May 23 jQuery
聊聊Vue 中 title 的动态修改问题
Jun 11 Javascript
js中!和!!的区别与用法
May 09 Javascript
vue-router之解决addRoutes使用遇到的坑
Jul 19 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
PHP概述.
2006/10/09 PHP
php定界符
2014/06/19 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
2018/11/30 PHP
JQuery select标签操作代码段
2010/05/16 Javascript
JavaScript实现的一个倒计时的类
2015/03/12 Javascript
jquery获取select选中值的方法分析
2015/12/22 Javascript
深入浅析JavaScript面向对象和原型函数
2016/02/06 Javascript
AngularJS 与百度地图的结合实例
2016/10/20 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
2017/05/04 Javascript
jQuery EasyUI 折叠面板accordion的使用实例(分享)
2017/12/25 jQuery
layui 优化button按钮和弹出框的方法
2018/08/15 Javascript
JavaScript使用indexOf()实现数组去重的方法分析
2018/09/04 Javascript
详解vue中的父子传值双向绑定及数据更新问题
2019/06/13 Javascript
基于PHP pthreads实现多线程代码实例
2020/06/24 Javascript
Python错误: SyntaxError: Non-ASCII character解决办法
2017/06/08 Python
python计算auc指标实例
2017/07/13 Python
深入理解Python爬虫代理池服务
2018/02/28 Python
python selenium 执行完毕关闭chromedriver进程示例
2019/11/15 Python
Python常用模块os.path之文件及路径操作方法
2019/12/03 Python
Python基于DB-API操作MySQL数据库过程解析
2020/04/23 Python
详解Python3 定义一个跨越多行的字符串的多种方法
2020/09/06 Python
在Python中实现字典反转案例
2020/12/05 Python
纯CSS3实现带动画效果导航菜单无需js
2013/09/27 HTML / CSS
详解使用canvas保存网页为pdf文件支持跨域
2018/11/23 HTML / CSS
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
什么是makefile? 如何编写makefile?
2013/01/02 面试题
若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedException?
2016/10/17 面试题
中间件的定义
2016/08/09 面试题
代码中finally中的代码会不会执行
2012/02/06 面试题
幼儿园小班评语
2014/04/18 职场文书
夏季药店促销方案
2014/08/22 职场文书
年终工作总结范文2014
2014/11/27 职场文书
三行辞职书范文
2015/02/26 职场文书
2014年终个人总结报告
2015/03/09 职场文书
使用Nginx+Tomcat实现负载均衡的全过程
2022/05/30 Servers