利用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 相关文章推荐
在JavaScript中使用inline函数的问题
Mar 08 Javascript
js拦截alert对话框另类应用
Jan 16 Javascript
js替代copy(示例代码)
Nov 27 Javascript
JS和JQ的event对象区别分析
Nov 24 Javascript
node.js中的fs.chown方法使用说明
Dec 16 Javascript
javascript实时显示北京时间的方法
Mar 12 Javascript
javascript用正则表达式过滤空格的实现代码
Jun 14 Javascript
微信小程序 实例开发总结
Apr 26 Javascript
JS实现按钮控制计时开始和停止功能
Jul 27 Javascript
JavaScript实现动态添加、移除元素或属性的方法分析
Jan 03 Javascript
Vue实现根据hash高亮选项卡
May 27 Javascript
Angular短信模板校验代码
Sep 23 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
ajax在joomla中的原生态应用代码
2012/07/19 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
2014/06/13 PHP
PHP内置过滤器FILTER使用实例
2014/06/25 PHP
提高php编程效率技巧
2015/08/13 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
Javascript匿名函数的一种应用 代码封装
2010/06/27 Javascript
Google 静态地图API实现代码
2010/11/19 Javascript
javascript编码的几个方法详细介绍
2013/01/06 Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
2013/06/09 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
Javascript闭包(Closure)详解
2015/05/05 Javascript
jQuery 1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween
2015/12/03 Javascript
Bootstrap每天必学之响应式导航、轮播图
2016/04/25 Javascript
浅析Javascript ES6新增值比较函数Object.is
2016/08/24 Javascript
jquery事件绑定解绑机制源码解析
2016/09/19 Javascript
RequireJS简易绘图程序开发
2016/10/28 Javascript
浅谈js函数三种定义方式 &amp; 四种调用方式 &amp; 调用顺序
2017/02/19 Javascript
原生js实现选项卡功能
2017/03/08 Javascript
vue实现节点增删改功能
2019/09/26 Javascript
如何在wxml中直接写js代码(wxs)
2019/11/14 Javascript
[05:41]2014DOTA2西雅图国际邀请赛 小组赛7月10日TOPPLAY
2014/07/10 DOTA
Python 操作文件的基本方法总结
2017/08/10 Python
Flask框架实现给视图函数增加装饰器操作示例
2018/07/16 Python
TensorFlow基于MNIST数据集实现车牌识别(初步演示版)
2019/08/05 Python
Python PyInstaller库基本使用方法分析
2019/12/12 Python
Python基于pandas绘制散点图矩阵代码实例
2020/06/04 Python
Python 实现简单的客户端认证
2020/07/29 Python
Python paramiko使用方法代码汇总
2020/11/20 Python
利物浦足球俱乐部官方商店(美国):Liverpool FC US
2019/10/09 全球购物
葛优非诚勿扰搞笑征婚台词
2014/03/17 职场文书
领导批评与自我批评范文
2014/10/16 职场文书
2014年小学班主任工作总结
2014/11/08 职场文书
雾霾停课通知
2015/04/24 职场文书
Linux中Nginx的防盗链和优化的实现代码
2021/06/20 Servers