Nodejs(同步)无法find光纤二进制文件

我见过类似的问题,但没有真正的解决scheme,但我工作(大多数用户只是重新安装光纤或meteor(我不使用meteor))。

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

… /win32-x64-v8-4.3/fibers.node未find

这是正确的:在同步/ node_modules /纤维/ bin /没有目录名为win32-x64-v8- 4.3,只有win32-x64-v8-4.2和重命名没有解决问题(本来是太简单了).. 🙈

  1. 我怎么解决这个问题? 这怎么可能发生?
  2. 最后一个数字(4.3)的含义是什么? 我想这是Windows,64位,Javascript V8引擎,然后呢? 纤维版本?

任何想法或提示?

更新:

  • 我试图升级节点到0.12.6,但没有任何改变。
  • 我发现4.3是什么,这是V8版本。 那么,当用电子运行我的应用程序时,它是v8:“4.3.61.21” 。 用节点检查版本时,是3.28。 所以这可能是电子“故障”?

更新#2:

  • 好吧,我发现电子是基于io.js而不是节点。 这解释了不同的V8版本。 但仍然没有解决scheme。 使用最新的io.js(2.3.3)安装光纤时,它testing4.2二进制,但电子需要4.3

更新#3:

  • 即使使用与电子版本相同的io.js 2.3.1版本,也只安装了4.2版本。

更新#4:

  • 现在,我尝试了http://electron.atom.io/docs/v0.27.0/tutorial/using-native-node-modules/ (电子版本为0.29.1)中描述的所有三种方法 – 仍然没有解决scheme。 v8-4.3没有任何二进制文件,只有v8-4.2。 🙁

解:

  • 看到我的答案在下面。 🙂

最后,我必须自己编译光纤。 正如更新#4所述,我已经尝试过。 但是node-gyp总是失败,我没有注意到我必须链接到我自己的新二进制文件…

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 

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

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

现在同步就像一个魅力。

您需要使用电子重build工具来重build您使用的Electron版本的原生模块