NodeJS(Sync)找不到光纤二进制文件 [英] Nodejs (Sync) cannot find fibers binaries
本文介绍了NodeJS(Sync)找不到光纤二进制文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我见过类似的问题,但还没有对我有效的真正解决方案(大多数用户只是重新安装光纤或流星(我没有使用流星))。
我已经将NodeJS模块Sync添加到我的NodeJS 0.12.6项目中。它的依赖项是随Sync自动安装的光纤模块。现在我想通过Require加载同步,但失败并显示消息
.../Win32-x64-v8-4.3/fibers.node未找到
而且它是正确的:在sync/node_MODULES/fires/bin/中,没有名为win32-x64-v8-4.3,的目录,只有win32-x64-v8-4.2,重命名并没有解决问题(如果重命名太容易了)...🙈
- 如何解决此问题?怎么会发生这种情况?
- 最后一个数字(4.3)是什么意思?我猜是Windows,64位,Java V8引擎,然后呢?光纤版本?
有什么想法或提示吗?
更新:
- 我尝试将节点升级到0.12.6,但没有任何更改。
- 我知道4.3是什么了,是V8版本。那么,当使用电子邮件运行我的应用程序时,它是V8:‘4.3.61.21’。用NODE检查版本时为3.28。所以这可能是电子的"故障"?
更新#2:
- 好的,我发现电子是基于io.js,而不是节点。这就解释了不同的V8版本。但仍然没有解决方案。在安装具有最新io.js(2.3.3)的光纤时,它测试4.2二进制,但电子需要4.3:(
更新#3:
- 即使使用与Electronics相同的io.js 2.3.1版,它也只安装4.2二进制文件。
更新4:
- 现在,我已经尝试了http://electron.atom.io/docs/v0.27.0/tutorial/using-native-node-modules/(电子版本0.29.1)中描述的所有三种方法-仍然没有解决方案。没有任何针对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
然后我已经创建了缺失的目录,并将新的二进制文件移到那里:
mkdir bin/win32-x64-v8-4.3
mv build/Release/fibers.node bin/win32-x64-v8-4.3/fibers.node
现在,同步像护身符一样工作。
这篇关于NodeJS(Sync)找不到光纤二进制文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文