利用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函数内部this指针指向的三种方法
Apr 23 Javascript
jquery教程限制文本框只能输入数字和小数点示例分享
Jan 13 Javascript
jQuery判断checkbox(复选框)是否被选中以及全选、反选实现代码
Feb 21 Javascript
node.js中的querystring.stringify方法使用说明
Dec 10 Javascript
AngularJS快速入门
Apr 02 Javascript
jQuery设置Cookie及删除Cookie实例分析
Apr 15 Javascript
JQueryMiniUI按照时间进行查询的实现方法
Jun 07 jQuery
JavaScript取得gridview中获取checkbox选中的值
Jul 24 Javascript
原生js实现抽奖小游戏
Jun 27 Javascript
js实现旋转木马轮播图效果
Jan 10 Javascript
JS实现页面鼠标点击出现图片特效
Aug 19 Javascript
(开源)微信小程序+mqtt,esp8266温湿度读取
Apr 02 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的文件操作与算法实现的面试题示例
2015/08/10 PHP
php常量详细解析
2015/10/27 PHP
Yii基于CActiveForm的Ajax数据验证用法示例
2016/07/14 PHP
php微信公众平台开发(三)订阅事件处理
2016/12/06 PHP
PHP+MySQL实现在线测试答题实例
2020/01/02 PHP
JavaScript Event学习第十章 一些可替换的事件对
2010/02/10 Javascript
jquery中防刷IP流量软件影响统计的一点对策
2011/07/10 Javascript
javascript之querySelector和querySelectorAll使用介绍
2011/12/20 Javascript
JavaScript中的call方法和apply方法使用对比
2015/08/12 Javascript
纯javascript实现图片延时加载方法
2015/08/21 Javascript
AngularJs $parse、$eval和$observe、$watch详解
2016/09/21 Javascript
3分钟掌握常用的JS操作JSON方法总结
2017/04/25 Javascript
Angular.js 4.x中表单Template-Driven Forms详解
2017/04/25 Javascript
详解Vue的computed(计算属性)使用实例之TodoList
2017/08/07 Javascript
express默认日志组件morgan的方法
2018/04/05 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
Vue.js 中的 v-show 指令及用法详解
2018/11/19 Javascript
浅谈小程序 setData学问多
2019/02/20 Javascript
JavaScript中关于base64的一些事
2019/05/06 Javascript
js 将线性数据转为树形的示例代码
2019/05/28 Javascript
简述pm2常用命令集合及配置文件说明
2019/05/30 Javascript
详解vue 自定义组件使用v-model 及探究其中原理
2019/10/11 Javascript
python过滤字符串中不属于指定集合中字符的类实例
2015/06/30 Python
在Python的Django框架中使用通用视图的方法
2015/07/21 Python
Python制作Windows系统服务
2017/03/25 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
2018/04/30 Python
Python urlencode和unquote函数使用实例解析
2020/03/31 Python
python 利用matplotlib在3D空间中绘制平面的案例
2021/02/06 Python
html5版canvas自由拼图实例
2014/10/15 HTML / CSS
使用canvas绘制超炫时钟
2014/12/17 HTML / CSS
Linux操作面试题
2015/02/11 面试题
《火烧云》教学反思
2014/04/12 职场文书
道德演讲稿
2014/05/21 职场文书
门卫岗位职责说明书
2014/08/18 职场文书
运动会广播稿100字
2015/08/19 职场文书
MySQL大小写敏感的注意事项
2021/05/24 MySQL