错误 C2039:“IsNearDeath”:不是“Nan::Persistent<v8::Object,v8::NonCopyablePersistentTraits<T>>

Posted

技术标签:

【中文标题】错误 C2039:“IsNearDeath”:不是“Nan::Persistent<v8::Object,v8::NonCopyablePersistentTraits<T>> 的成员”【英文标题】:error C2039: 'IsNearDeath': is not a member of 'Nan::Persistent<v8::Object,v8 ::NonCopyablePersistentTraits<T>> 【发布时间】:2019-10-16 21:07:33 【问题描述】:

我最近将我的nodejs 升级到v12.3.1,现在当我尝试在我的项目存储库中运行npm install 时,我遇到了上述错误。

error C2059: syntax error: ')' (compiling source file ..\src\custo
m_importer_bridge.cpp) 

error C2660: 'v8::StringObject::New': function does not take 1 arg
uments (compiling source file ..\src\sass_context_wrapper.cpp)

node_modules\nan\nan_object_wrap.h(127): error C2039: 'IsNearDeath': is not a member of 'Nan::Persistent<v8::Object,v
8::NonCopyablePersistentTraits<T>>'

我尝试过的事情

删除了node_modules文件夹并运行npm install 关闭 vscode 并再次打开解决方案 将 npm 更新到最新版本

还有其他人在v12.3.1 遇到同样的问题吗?

【问题讨论】:

Questions seeking debugging help ("why isn't this code working?") must include the desired behavior, a specific problem or error and the shortest code necessary to reproduce it in the question itself. 相关:How to Ask & minimal reproducible example 【参考方案1】:

我已经尝试了很多方法来解决这个问题。 v12.3.1 的版本似乎还不稳定。作为一种解决方法,我安装了版本v10.16.0 并解决了这个问题。由于我之前安装了最新版本 (v12.3.1),Node.js 不允许我安装较低版本,因此我必须卸载 Node.js 并安装 v10.16.0。我希望它有所帮助。

更新:

正如@forsunnet 在他的评论中提到的,13.12 版本也存在问题,回到 11.x 版本为他解决了这个问题。

【讨论】:

@aardvark 节点版本 12.12.0 没有为我修复它。安装 10.16.3 确实如此。我现在坚持使用 LTS。 @aardvark 在 v12.10.0 中遇到此问题 v12.13.0 仍然存在这个问题 仍然遇到 v12.16.0 的问题 在将节点更新到 v12.16.0 后,我也遇到了同样的问题。这有什么更新吗?【参考方案2】:

我能够在 Node v12.13.1 上解决问题(至少对我而言):

删除 package-lock.json 删除node_modules目录 重新运行 npm install

查看 package-lock.json 的差异可以发现,一些有问题的包显然已经过时了:

【讨论】:

这对我也适用于node 12.18.4。谢谢!

以上是关于错误 C2039:“IsNearDeath”:不是“Nan::Persistent<v8::Object,v8::NonCopyablePersistentTraits<T>>的主要内容,如果未能解决你的问题,请参考以下文章

错误 C2039:“查找”:不是“标准”的成员

错误 C2039:“会话”:不是“pjsua_call”的成员

错误 C2039:“向量”:不是“标准”的成员

Visual Studio 2008,错误 c2039:“set_new_handler”:不是“std”的成员

qt 错误 多继承 造成错误:error C2039: “qt_metacall“: 不是 “xxxxxx“ 的成员

qt 错误 多继承 造成错误:error C2039: “qt_metacall“: 不是 “xxxxxx“ 的成员