开发者社区> yuxiao.lxy> 正文

node0.12升级到6.x 实战

简介: 本文介绍node从0.12升级到6.x实战过程。
+关注继续查看

前几天node官方发布了6.x版本,官方介绍年底将不会维护node0.12,node0.10等版本,由于我们的node项目当前版本是node0.12,所以着手升级一下我们的服务端使用的node版本,打算升级到node6.x,从官网可以看到当前最新的版本是node6.1.0.
下面将记录整个升级node的过程。

安装nvm(node版本管理工具)

  • 安装nvm
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash
  • 激活nvm
. ~/.nvm/nvm.sh

设定node镜像源为淘宝的源(速度更快)

export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node

安装制定版本的node

  • 查看可用版本
nvm ls-remote
  • 安装指定版本
node install 6.1.0

验证升级结果

运行指令启动程序

node app.js

报错处理

  • 错误显示某些module版本落后
Module version mismatch. Expected 46, got 14 ...
  • 执行npm rebuildnpm update
  • 再次执行node app.js
==== JS stack trace =========================================

Security context: 0x54fd37c9fa9 <JS Object>#0#
    1: .node [module.js:568] [pc=0x2394692a9ce4](this=0x7db1007e01 <an Object with map 0x37d5f043a4f9>#1#,module=0x26b77ba718e9 <a Module with map 0x37d5f041bb79>#2#,filename=0x26b77ba718c1 <String[123]: 
    2: load [module.js:~447] [pc=0x23946911fd36](this=0x26b77ba718e9 <a Module with map 0x37d5f041bb79>#2#,filename=0x26b77ba718c1 <String[123]: 
    3: tryModuleLoad(aka tryModuleLoad) [module.js:415] [pc=0x239468a3899d](this=0x54fd3704189 <undefined>,module=0x26b77ba718e9 <a Module with map 0x37d5f041bb79>#2#,filename=0x26b77ba718c1 <String[123]: 
 2: node::DTraceProbe::Initialize(v8::Local<v8::Object>)
 3: node::DTraceProvider::Initialize(v8::Local<v8::Object>)
 4: node::DLOpen(v8::FunctionCallbackInfo<v8::Value> const&)
 5: v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&))
 6: v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::(anonymous namespace)::BuiltinArguments<(v8::internal::BuiltinExtraArguments)1>)
 7: v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*)
 8: 0x23946890961b
  • 访问服务之后确定只是一些报警处理,查询谷神(google)之后发现目前6.x版本对某些弃用的包使用还在支持中(或者修复中),所以如果追求最新的node版本,到此就可以使用了

降低node版本到稳定版本

每次启动程序这么多的warning信息很有友好,所以选用一个稳定的版本很重要,所以降低到稳定版本

  • 运行nvm install 5.11.1node app.js
[Error: Module version mismatch. Expected 47, got 48.]
{ [Error: Cannot find module './build/default/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }
{ [Error: Cannot find module './build/Debug/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }
[Error: Module version mismatch. Expected 47, got 48.]
{ [Error: Cannot find module './build/default/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }
{ [Error: Cannot find module './build/Debug/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }
  • 重新编译和更新npm build,npm update,node app.js
    最终ok!

小结

  • node6.x暂时不是稳定版本,升级时会遇到一个模块版本不适配的情况,可以通过npm rebuild,npm update,npm install some_module@certain_version解决
  • 建议先使用稳定的版本node5.x
  • 从node0.12升级到node5.x或者node6.x版本的一大好处是,之前的node --harmony可以直接换成node,即5.x和6.x已经很好的支持了ejs6的特性,包括generetor function的使用。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
webpack 4升级到 webpack 5 (node 14.6 升级到 node16 引发的问题)
第一次启动项目报错,报错内容是 Node Sass does not yet support your current environment: Windows 64-bit, 这个问题相信大家都清楚, node-sass 出问题了
86 0
升级Node版本RN项目运行报错cb.apply is not a function
升级Node版本RN项目运行报错cb.apply is not a function
227 0
linux环境升级node版本
linux环境升级node版本
54 0
k8s1.6伸缩性升级,支持处理5000 Node 和 15 万个 Pod
上个夏天,我们分享了 Kubernetes 的伸缩性更新,经过一番努力,我们自豪的宣布 Kubernetes 1.6 能够处理 5000 个节点的集群和 15 万个 Pod 了;另外即使在这种负载规模下,端到端的 Pod 启动速度依然优于 2000 节点规模的 1.3 版本的 Kubernetes 集群,API 调用的延迟依然满足 1 秒的 SLO。
1354 0
一行命令搞定node.js升级
node有一个模块叫n,是专门用来管理node.js的版本的。 首先安装n模块: npm install -g n 第二步: 升级node.js到最新稳定版 n stable 完工!是不是很简单?! n后面也可以跟随版本号比如: n v0.
1249 0
基于Node+Vue+Express开发实现商城系统
基于Node+Vue+Express开发实现商城系统
81 0
Node+Vue实现高校公寓管理系统设计与开发
Node+Vue实现高校公寓管理系统设计与开发
65 0
【Node.js 】开发中遇到的多进程‘keylog‘ 事件以及TLS/SSL的解决学习方案实战
【Node.js 】开发中遇到的多进程‘keylog‘ 事件以及TLS/SSL的解决学习方案实战
57 0
node.js 开发网站和传统PHP等开发网站的区别|学习笔记
快速学习 node.js 开发网站和传统PHP等开发网站的区别
75 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
基于 Node.js 内核的企业级性能解决方案
立即下载
穆客带你快速定位 Node.js 内存泄露
立即下载
egg—— 企业级 Node 框架
立即下载