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的使用。
目录
相关文章
|
4月前
|
数据采集 并行计算 JavaScript
实战指南:在 Node.js 中利用多线程提升性能
在 Node.js 的世界中,多线程技术一直是一个受到广泛关注的领域。最初,Node.js 设计为单线程模式。随着技术发展,Node.js 引入了多线程支持,进而利用多核处理器的强大性能,提升了应用性能。接下来的内容将深入探讨 Node.js 如何实现多线程,以及在何种场合应该采用这种技术。
|
4月前
|
Ubuntu
node、npm 命令升级
node、npm 命令升级
120 0
|
Java Linux 内存技术
node安装&升级思考
前段时间公司d环境挂了,根据报错看到使用的node版本比较低,就想升级一下版本;由于对于node的安装也没有经历过系统的对比,所以最终解决完之后就有了本次的总结
|
11月前
|
JSON 前端开发 JavaScript
前端AJAX入门到实战,学习前端框架前必会的(ajax+node.js+webpack+git)(一)
前端AJAX入门到实战,学习前端框架前必会的(ajax+node.js+webpack+git)(一)
571 0
|
3月前
|
JavaScript 网络协议 前端开发
【Nodejs】WebSocket 全面解析+实战演练——(Nodejs实现简易聊天室)
【Nodejs】WebSocket 全面解析+实战演练——(Nodejs实现简易聊天室)
327 0
|
8天前
|
缓存 资源调度
解决node升级到18版本node-sass安装问题
解决node升级到18版本node-sass安装问题
|
1月前
|
存储 缓存 JavaScript
构建高效后端服务:Node.js与Express框架的实战应用
【8月更文挑战第2天】在数字化时代的浪潮中,后端服务的构建成为了软件开发的核心。本文将深入探讨如何利用Node.js和Express框架搭建一个高效、可扩展的后端服务。我们将通过实际代码示例,展示从零开始创建一个RESTful API的全过程,包括路由设置、中间件使用以及数据库连接等关键步骤。此外,文章还将触及性能优化和安全性考量,旨在为读者提供一套完整的后端开发解决方案。让我们一同走进Node.js和Express的世界,探索它们如何助力现代Web应用的开发。
|
20天前
|
大数据 数据处理 分布式计算
JSF 逆袭大数据江湖!看前端框架如何挑战数据处理极限?揭秘这场技术与勇气的较量!
【8月更文挑战第31天】在信息爆炸时代,大数据已成为企业和政府决策的关键。JavaServer Faces(JSF)作为标准的 Java Web 框架,如何与大数据技术结合,高效处理大规模数据集?本文探讨大数据的挑战与机遇,介绍 JSF 与 Hadoop、Apache Spark 等技术的融合,展示其实现高效数据存储和处理的潜力,并提供示例代码,助您构建强大的大数据系统。
26 0
|
2月前
|
JavaScript 应用服务中间件 API
Node.js搭建REST API实战:从基础到部署
【7月更文挑战第18天】通过以上步骤,你可以将你的Node.js REST API从开发环境顺利迁移到生产环境,并利用各种工具和技术来确保应用的稳定性、安全性和可扩展性。
|
1月前
Mac卸载 Node npm,升级 Node
Mac卸载 Node npm,升级 Node
46 0