电子 ffi 重建问题:找不到命令



我正在努力解决错误:

未捕获的异常: 错误:动态链接库 (DLL( 初始化例程失败。

经过一些研究和调试,可能的问题是节点模块ffi尚未针对电子环境"重建"。 我尝试按照 https://github.com/electron/electron/blob/master/docs/tutorial/using-native-node-modules.md 中的步骤重建包,但是方法1在复制到信件时不起作用。

"安装模块并重建电子"的方法 2 不起作用,因为输入 ./node_modules/.bin/electron-rebuild.cmd(我在 Windows 上(不起作用 - Bash 只是说"找不到命令",我没有看到其他人有这个问题。 我甚至尝试从 PowerShell 运行它,以防 git bash 导致问题,但我遇到了类似的问题,尽管我也收到一个错误:

At line:1 char:1
+electron-rebuild.cmd
+~~~~~~~~~~~~~~~~~~~
_CategoryInfo : ObjectNotFound: (electron-rebuild.cmd:String) [], CommandNotFoundException
+FullyQualifiedErrorID : CommandNotFoundException

我不明白方法 3(手动为 Electron 构建(并且对使用它犹豫不决 - 即我不确定为什么手动构建命令中没有参数来指定需要重建的包。

我已经按照 https://github.com/electron/electron-rebuild 中的说明多次(npm install --save-dev electron-rebuild(在项目文件夹中多次重试安装电子重建。 它似乎安装在正确的位置。

为什么电子重建不被识别? 正确安装 ffi 需要什么?

如果有人能指出我一些其他地方来教育自己,我对这个问题的概念化可能会遗漏什么,我也将不胜感激。 提前感谢!

好的,这对我有用:

  1. 确保安装了 Python 2.7.X。
  2. 获取并安装Visual Studio Build Tools(例如 http://landinghub.visualstudio.com/visual-cpp-build-tools(
  3. 要在重建期间使用正确的 msvs 版本,请输入以下内容,例如。 电源外壳:npm config set msvs_version 2015 --global
  4. 在我的最小示例中,我使用了以下 package.json:

{
"name": "stack_ffi",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo "Error: no test specified" && exit 1",
"start": "electron .",
"rebuild": "electron-rebuild -f -w ffi"
},
"author": "",
"license": "XXX",
"devDependencies": {
"electron": "2.0.2",
"electron-rebuild": "1.7.3"
},
"dependencies": {
"ffi": "2.2.0",
"ref": "1.3.5"
}
}

  • 运行npm run install,然后npm run rebuild

笔记:

  • 在我第一次尝试时,电子没有正确安装,所以我删除了 ./node_modules/electron文件夹并再次运行npm run install

  • 当我尝试在Windows上使用sqlite3.dll时,在线示例(https://github.com/node-ffi/node-ffi/blob/master/example/sqlite.js(确实如此 不工作。我不得不从库字符串中删除前导"lib"部分:var SQLite3 = ffi.Library('sqlite3', {...}); //was 'libsqlite3'.

  • 我在节点 7.4.0 和 8.0.0 上对其进行了测试。如果在您的节点版本上失败 我有一个理论,v8::Object::ForceSet后来被丢弃了 版本。

  • 我必须确保Windows可以找到我的dll。例如我 通过添加其文件夹来包含 SQLEt3 x64 DLL 位置到 PATH 环境变量。

看看你的python版本,ffi只支持python 2x,因为node-gyp只支持python 2x。

尝试卸载 python 3x 并重新安装 python 2x。

最新更新