我正在尝试在树莓派上运行电子应用程序。我用的时候
我的代码中var TJBot = require('tjbot')
导入节点包,发生以下错误:
## There is an issue with `node-fibers` ##
`/Users/apple/app/node_modules/asyncawait/node_modules/fibers/bin/darwin-x64-53/fibers.node` is missing.
Try running this to fix the issue: /Users/apple/app/node_modules/electron/dist/Electron/
app/Contents/Frameworks/Electron Helper.app/Contents/MacOS/Electron Helper
/Users/apple/app/node_modules/
asyncawait/node_modules/fibers/build
Uncaught Error: Missing binary. See message above.
at Object.<anonymous> (/Users/apple/app/node_modules/asyncawait/node_modules/fibers/fibers.js:20:8)
at Object.<anonymous> (/Users/apple/app/node_modules/asyncawait/node_modules/fibers/fibers.js:26:3)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
如果我删除此行或在不使用电子的情况下运行它,一切正常,所以我不确定这个节点库是否存在问题或者是否是由电子引起的
在/Users/apple/app/node_modules/asyncawait/node_modules/fibers/bin/
内我可以看到
darwin-ia32-46 darwin-x64-48 linux-ia32-48 repl win32-x64-46
darwin-ia32-48 darwin-x64-51 linux-x64-46 win32-ia32-46 win32-x64-48
darwin-x64-46 linux-ia32-46 linux-x64-48 win32-ia32-48
为什么我需要darwin-x64-53
以及它来自哪里?
答案 0 :(得分:1)
Fibers是根据原生二进制代码构建的,它不是纯粹的javascript。 Rasperry Pi在ARM上运行,它不包含在预构建的二进制文件中。预构建的二进制文件支持OSX(darwin),linux和windows的32位和64位架构。
这意味着您需要为系统手动构建光纤,而不是通过NPM安装。 The README for Fibers明确说明了如何执行此操作。为方便访问,我将它们包含在此处。请按照这些说明尝试在Raspberry Pi / ARM上运行它。
git clone git://github.com/laverdet/node-fibers.git
cd node-fibers
npm install
注意:节点光纤使用node-gyp
建造。要手动调用构建过程,可以使用node-gyp rebuild
。
这将把编译的扩展名放在build/Release/fibers.node
中。然而,
当你执行require('fibers')
时,它会期望模块在,为
例如,bin/linux-x64-v8-3.11/fibers.node
。您可以手动放置模块
每次构建时都可以使用,或者您可以使用包含的构建脚本。或
npm install
或node build -f
会为您执行此操作。如果你要成为
在节点光纤上进行攻击,首先做node-gyp configure
可能是值得的
然后对于后续的重建,你可以做node-gyp build
快于完整npm install
或node-gyp rebuild
。
答案 1 :(得分:0)
我在Linux Mint上遇到了同样的问题,并按以下方法解决了它; 基于github source for node-fibers部分,有关从源代码进行安装;
git clone git://github.com/laverdet/node-fibers.git
cd node-fibers
npm install
然后我创建了一个新目录;
mkdir /usr/local/lib/node_modules/iron-meteor/node_modules/fibers/bin/linux-x64-57/
然后我将fibres.node复制到新创建的目录中
cp bin/linux-x64-57-glibc/fibers.node /usr/local/lib/node_modules/iron-meteor/node_modules/fibers/bin/linux-x64-57/
然后一切都对我有用。您可能需要调整权限。