Nodejs(同步)找不到纤程二进制文件

Nodejs (Sync) cannot find fibers binaries

我见过类似的问题,但还没有真正适合我的解决方案(大多数用户只是重新安装光纤或流星(我没有使用流星))。

我已将 nodejs 模块 Sync 添加到我的 nodejs 0.12.6 项目中。它的依赖项是随 Sync 自动安装的 Fibers 模块。现在我想通过 require 加载 Sync,但失败并显示消息

... /win32-x64-v8-4.3/fibers.node not found

而且是正确的:在 sync/node_modules/fibers/bin/ 中没有名为 win32-x64-v8-4.3 的目录, 只有 win32-x64-v8- 4.2 和重命名没有解决问题(本来就太容易了)...

  1. 我该如何解决这个问题?这怎么会发生?
  2. 最后一个数字(4.3)是什么意思?我猜是 windows, 64bit, Javascript v8 引擎,然后呢?纤维版本?

有什么想法或提示吗?

更新:

更新#2:

更新#3:

更新#4:

解法:

您需要使用 electron-rebuild 工具根据您正在使用的 Electron 版本重建您的原生模块

最后,我不得不自己编译纤程。如更新 #4 中所述,我之前已经尝试过。但是 node-gyp 总是失败,我没有注意到我必须自己 link 到新的二进制文件...

cd ~/my-project-root/
npm install sync
cd ./node_modules/sync/node_modules/fibers
node-gyp configure
HOME=~/.electron-gyp node-gyp rebuild --target=0.29.1 --arch=x64 --dist-url=https://atom.io/download/atom-shell

然后我创建了丢失的目录并将新的二进制文件移到那里:

mkdir bin/win32-x64-v8-4.3
mv build/Release/fibers.node bin/win32-x64-v8-4.3/fibers.node

现在 Sync 非常有用。