nodejs升级导致堆栈跟踪
问题描述:
我刚升级到节点v6。一切都很好运行,但我得到以下堆栈跟踪指出的是,一些被弃用:nodejs升级导致堆栈跟踪
(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破模块列表:警告在模板::设置()上使用不当。
我们可能只需要等待v6.0.1。
答
我在一些项目中遇到了同样的错误,我解决了所有这些错误,更新了依赖关系。
我知道您可能不会同意更新某些circrestances中的所有依赖关系,因此您可以编辑packake.json文件并逐个更改每个依赖关系以“最新”。
然后执行NPM安装更新所有的依赖到最新版本
例如,这是我的我的一个项目的package.json:
"dependencies": { "body-parser": "latest", "eris-contracts": "latest", "express": "latest", "mongodb": "latest", "promise": "latest", "rootpath": "latest" }
呀,拿到了这里与节点sass一样的东西。 – LoremIpsum