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

Sib*_*enu 21 node.js npm visual-studio-code angular

我最近升级了我nodejsv12.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>>'
Run Code Online (Sandbox Code Playgroud)

我尝试过的事情

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

还有其他人面临同样的问题v12.3.1吗?

Mar*_*arc 22

我能够在 Node v12.13.1 上解决这个问题(至少对我来说):

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

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

在此处输入图片说明


Sib*_*enu 18

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

更新:

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

  • @aardvark Node 版本 12.12.0 没有为我修复它。安装 10.16.3 就可以了。我现在坚持使用 LTS。 (3认同)
  • v12.13.0 仍然遇到此问题 (3认同)
  • v12.16.0 仍然遇到问题 (3认同)
  • @aardvark 在 v12.10.0 中遇到此问题 (2认同)