错误 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:“会话”:不是“pjsua_call”的成员
Visual Studio 2008,错误 c2039:“set_new_handler”:不是“std”的成员