nodejs升级导致堆栈跟踪

我刚刚升级到节点v6。 一切运行良好,但我正在得到以下堆栈logging注意到有些东西被弃用:

(node) v8::ObjectTemplate::Set() with non-primitive values is deprecated (node) and will stop working in the next major release. ==== JS stack trace ========================================= Security context: 0x18c48b3c9fa9 <JS Object>#0# 1: .node [module.js:568] [pc=0x14a2e95935a4] (this=0x3e1b399e54e9 <an Object with map 0x31db83e17be1>#1#,module=0x1b9e891a8351 <a Module with map 0x31db83e181b9>#2#,filename=0x1b9e891a8319 <String[114]: /Users/alexanderray/WebstormProjects/skillx/node_modules/dtrace-provider/build/Release/DTraceProviderBindings.node>) 2: load [module.js:456] [pc=0x14a2e9438e72] (this=0x1b9e891a8351 <a Module with map 0x31db83e181b9>#2#,filename=0x1b9e891a8319 <String[114]: /Users/alexanderray/WebstormProjects/skillx/node_modules/dtrace-provider/build/Release/DTraceProviderBindings.node>) 3: tryModuleLoad(aka tryModuleLoad) [module.js:415] [pc=0x14a2e943899d] (this=0x18c48b304189 <undefined>,module=0x1b9e891a8351 <a Module with map 0x31db83e181b9>#2#,filename=0x1b9e891a8319 <String[114]: /Users/alexanderray/WebstormProjects/skillx/node_modules/dtrace-provider/build/Release/DTraceProviderBindings.nod 1: v8::Template::Set(v8::Local<v8::Name>, v8::Local<v8::Data>, v8::PropertyAttribute) 2: node::DTraceProvider::Initialize(v8::Local<v8::Object>) 3: node::DLOpen(v8::FunctionCallbackInfo<v8::Value> const&) 4: v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&)) 5: v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::(anonymous namespace)::BuiltinArguments<(v8::internal::BuiltinExtraArguments)1>) 6: v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*) 7: 0x14a2e930961b 8: 0x14a2e95935a4 

我知道这不会是一个突破性的改变,直到下一个版本,但有没有人知道这是来自哪里,我应该寻找一个修复? 也有一种方法来压制这个?

各个项目(包括nodejs)已经开放,有些PR已经提交; 例如

  • strongloop / fsevents#127 ,在节点v6中使用不推荐使用的API
  • nodejs / citgm#124 ,由节点v6中断的模块列表
  • nodejs / node#6277 ,v8:在Template :: Set()中警告不正确的使用。

我们可能只需要等待v6.0.1。

我在一些项目中遇到了同样的错误,我解决了所有这些错误,更新了依赖关系。

我知道你可能不会同意在一些电路交换中更新所有的依赖关系,所以你可以编辑这个packake.json文件,并依次将每个依赖关系更改为“latest”。

然后执行npm install将所有的依赖关系更新到最新版本

例如,这是我的一个项目的package.json:

"dependencies": { "body-parser": "latest", "eris-contracts": "latest", "express": "latest", "mongodb": "latest", "promise": "latest", "rootpath": "latest" }