Node.js Nodejs(同步)找不到光纤二进制文件

Node.js Nodejs(同步)找不到光纤二进制文件,node.js,sync,electron,node-fibers,Node.js,Sync,Electron,Node Fibers,我见过类似的问题,但还没有真正的解决方案(大多数用户只是重新安装光纤或meteor(我没有使用meteor)) 我已将nodejs模块同步添加到我的nodejs 0.12.6项目中。它的依赖项是通过同步自动安装的光纤模块。现在我想通过require加载Sync,但它失败了,并显示了消息 /未找到win32-x64-v8-4.3/fibers.node 这是正确的:在sync/node_modules/fibers/bin/中,没有名为win32-x64-v8-4.3的目录,只有win32-x64

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

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

/未找到win32-x64-v8-4.3/fibers.node


这是正确的:在sync/node_modules/fibers/bin/中,没有名为win32-x64-v8-4.3的目录,只有win32-x64-v8-4.2,重命名并没有解决问题(太容易了) 您需要使用该工具根据您正在使用的Electron版本重建本机模块。最后,我不得不自己编译光纤。如更新4所述,我以前也尝试过。但是节点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

现在Sync工作起来很有魅力。

当我遇到光纤二进制文件版本错误时,几乎完全是因为我使用了与运行它不同的Node版本来编译它。在部署时经常发生这种情况。在运行npm安装后,您有什么特别的事情吗?谢谢您的回复。我只是调用npm安装同步——保存开发(甚至尝试npm安装光纤…)。之后,我尝试在代码中通过require使用它。我尝试在nodejs 0.12.6和io.js 2.3.3上安装它。Electron使用io.js 2.3.1运行代码-但区别在于v8版本。我的io.js 2.3.3也使用较旧的v8-4.2二进制文件。。。而且它的版本比electron使用的版本更高(io.js 2.3.1,需要v8-4.3??)。。。太令人困惑了…两个建议。如果可以,请始终使用准确的版本;有时这意味着一个不同的世界。另外,v.0.12.6还不“稳定”,所以可能你遇到了问题。嗯,太糟糕了,我是一个windows用户。。。无法使nvmw按预期工作以切换默认版本:/I我也在使用nvmw。你们有什么样的版本转换问题?谢谢,听起来很有趣,但对我来说不起作用。我通过nvmw切换到iojs 2.3.1。在我的项目根目录中,我通过npm安装光纤安装了光纤,然后运行./node_modules/.bin/electron rebuild-这花了几秒钟时间就完成了(是否有任何控制台输出?)。之后,我启动了需要光纤的应用程序,但仍然存在相同的错误,没有必要的v8-4.3二进制文件:(您可能需要分叉光纤,而不是从源代码构建模块,它试图应用不起作用的预封装光纤(其他一些流行的模块,如serialport和sqlite3也这样做:-/)嗯,我不确定electron重建应该做什么。我必须自己为electron编译带有节点gyp的光纤。现在它可以工作了。我将在这里发布解决方案,但无论如何为您+1-谢谢:)@Florian所以,对于大多数库,这将起作用-一些node.js库试图变得更聪明,为node.js的每种风格提供预构建的本机节点模块,而不是像大多数库一样通过node gyp编译它们。不幸的是,由于大多数lib没有为io.js2.3.x预先构建的二进制文件,这些文件无法与electron-rebuild一起使用。但是,对于大多数本机节点库,这是使其工作的最简单方法,谢谢!已经尝试为electron构建edge.js大约3天了。你的解决方案非常有效!谢谢在使用光纤和使用electron进行调试时,这对我很有效。是否有windows指南?我是在windows下完成的。这就是为什么我要谈论windows二进制文件。尝试在windows上使用git bash或cygwin作为shell:)