利用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 相关文章推荐
js变量作用域及可访问性的探讨
Nov 23 Javascript
jquery在IE、FF浏览器的差别详细探讨
Apr 28 Javascript
jfinal与bootstrap的登录跳转实战演习
Sep 22 Javascript
用jQuery实现圆点图片轮播效果
Mar 19 Javascript
Bootstrap Table使用整理(四)之工具栏
Jun 09 Javascript
Javascript中的getter和setter初识
Aug 17 Javascript
详解关于react-redux中的connect用法介绍及原理解析
Sep 11 Javascript
详解easyui基于 layui.laydate日期扩展组件
Jul 18 Javascript
JavaScript中变量、指针和引用功能与操作示例
Aug 04 Javascript
vue-router实现编程式导航的代码实例
Jan 19 Javascript
JS面向对象之单选框实现
Jan 17 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
May 28 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
星际争霸 Starcraft 游戏介绍
2020/03/14 星际争霸
php下MYSQL limit的优化
2008/01/10 PHP
基于php-fpm的配置详解
2013/06/03 PHP
PHP中构造函数和析构函数解析
2014/10/10 PHP
php类的定义与继承用法实例
2015/07/07 PHP
ThinkPHP中图片按比例切割的代码实例
2019/03/08 PHP
基于PHP实现用户在线状态检测
2020/11/10 PHP
jQuery Jcrop插件实现图片选取功能
2011/11/23 Javascript
JavaScript中for..in循环陷阱介绍
2013/11/12 Javascript
省市二级联动小案例讲解
2016/07/24 Javascript
微信小程序 开发之顶部导航栏实例代码
2017/02/23 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
2017/12/22 Javascript
Vue 页面切换效果之 BubbleTransition(推荐)
2018/04/08 Javascript
JS实现字符串中去除指定子字符串方法分析
2018/05/17 Javascript
JavaScript简单实现的仿微博留言功能示例
2019/01/17 Javascript
微信小程序实现人脸识别登陆的示例代码
2019/04/02 Javascript
vuex实现像调用模板方法一样调用Mutations方法
2019/11/06 Javascript
js 计算月/周的第一天和最后一天代码
2020/02/01 Javascript
在webstorm中配置less的方法详解
2020/09/25 Javascript
Python实现端口复用实例代码
2014/07/03 Python
Python中的zip函数使用示例
2015/01/29 Python
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
2016/12/15 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
Python如何转换字符串大小写
2020/06/04 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
2020/07/28 Python
全天然狗零食:Best Bully Sticks
2016/09/22 全球购物
酒店管理求职信范文
2014/04/06 职场文书
博士论文答辩开场白
2015/06/01 职场文书
大学生入党自传2015
2015/06/26 职场文书
九九重阳节致辞
2015/07/31 职场文书
初二物理教学反思
2016/02/19 职场文书
python3 实现mysql数据库连接池的示例代码
2021/04/17 Python
如何vue使用el-table遍历循环表头和表体数据
2022/04/26 Vue.js
Java界面编程实现界面跳转
2022/06/16 Java/Android
SpringBoot详解整合Redis缓存方法
2022/07/15 Java/Android