昨晚让我的节点使用VS代码调试器没有问题。除了安装npm包之外,我什么也没碰过。
我今晚回来,它会犯这样的错误:
Debugger listening on [::]:49952
dyld: lazy symbol binding failed: Symbol not found: _napi_module_register
Referenced from: /Users/adamsawyers/node_modules/bufferutil/prebuilds/darwin-
x64/node-napi.node
Expected in: flat namespace
dyld: Symbol not found: _napi_module_register
Referenced from: /Users/myusername/node_modules/bufferutil/prebuilds/darwin-
x64/node-napi.node
Expected in: flat namespace显然,我的n(npm中的一个节点版本处理包)的安装被破坏了。我的研究告诉我,napi_module_register是n包的一部分,但我不知道这是怎么搞砸的,尤其是因为我昨晚让它起作用了。
我尝试重新安装我的节点包,重新安装n,重建项目文件结构,甚至重新启动我的计算机。到目前为止,一切都不起作用。
有什么建议吗?
发布于 2018-07-26 00:01:44
显然,VS代码不喜欢nodejs的v6.10.3,我正在运行它来创建AWS中的lambda函数(这是AWS指定的版本)
我使用N包来管理我的节点版本。在切换到最新版本10.7.0到2018年7月25日(命令: sudo最新)并在VS代码中重新运行调试器之后,它完美地工作了
我仍然不确定原因,但希望其他人发现这个解决方案有帮助
发布于 2020-09-21 12:06:20
这个错误发生在我身上是因为:
socket.io在Node 上运行ws (节点上的websockets)解决方案
这是个糟糕的解决方案,但至少我能做到。
经过一番研究,我没有找到很好的解决办法。但是,仔细看看源代码就会发现,index.js旁边有一个fallback.js,它实现了与本机构建相同的功能,但不需要构建。这可能会大大减缓事情的发展,但至少它能起作用:
yarn add module-aliasnode -r fallbacks.js):// fallbacks.js
const moduleAlias = require('module-alias');
const dependencyRoot = getDependencyRoot(); // whatever is your root folder, maybe __dirname + '..'
moduleAlias.addAlias('bufferutil', dependencyRoot + '/node_modules/bufferutil/fallback.js');
moduleAlias.addAlias('utf-8-validate', dependencyRoot + '/node_modules/utf-8-validate/fallback.js');
// run actual code here...PS:在我的例子中,为了允许ws在Node 7上运行,我还必须使用babel,因为它使用现代语法。
https://stackoverflow.com/questions/51510489
复制相似问题