我找到了一个github项目,它与Rust一起运行电子程序,看起来很简单。但是,我无法成功构建它。
https://github.com/asaladino/electron-rust
当我尝试使用“ npm build”进行构建时,我失败了。
以下是我得到的:
PS D:_src.git \ electron-rust> npm安装
ref-napi@1.4.1安装D:_src.git \ electron-rust \ node_modules \ ref-napi
node-gyp重建
D:_src.git \ electron-rust \ node_modules \ ref-napi>如果未定义npm_config_node_gyp(节点“ C:\ Program Files \ nodejs \ node_modules \ npm \ node_modules \ npm-lifecycle \ node-gyp-bin \ ... 。\ node_modules \ node-gyp \ bin \ node-gyp.js“ rebuild)else(节点“ C:\ Program Files \ nodejs \ node_modules \ npm \ node_modules \ node-gyp \ bin \ node-gyp.js” rebuild)
糟糕!配置错误
糟糕!堆栈错误:命令失败:C:\ ProgramData \ Anaconda3 \ python.EXE -c import sys;打印“%s。%s。%s”%sys.version_info [:3];
糟糕!堆栈文件“”,第1行
糟糕!堆栈导入系统;打印“%s。%s。%s”%sys.version_info [:3];
糟糕!堆叠^
糟糕!堆栈SyntaxError:语法无效
糟糕!堆栈
糟糕!堆栈在ChildProcess.exithandler(child_process.js:294:12)
糟糕!堆栈在ChildProcess.emit(events.js:189:13)
糟糕!在也许关闭处堆叠(internal / child_process.js:970:16)
糟糕!堆栈位于Process.ChildProcess._handle.onexit(internal / child_process.js:259:5)
糟糕!系统Windows_NT 10.0.17134
糟糕!命令“ C:\ Program Files \ nodejs \ node.exe”“ C:\ Program Files \ nodejs \ node_modules \ npm \ node_modules \ node-gyp \ bin \ node-gyp.js”“重建”
糟糕! CWD D:_src.git \电子除锈\ node_modules \ ref-napi
糟糕!节点-v v10.15.1
糟糕! node-gyp -v v3.8.0
糟糕!不好
npm WARN electro-rust@1.0.0没有存储库字段。
npm ERR!代码ELIFECYCLE
npm ERR! errno 1
npm ERR! ref-napi@1.4.1安装:node-gyp rebuild
npm ERR!退出状态1
npm错误!
npm ERR! ref-napi@1.4.1安装脚本失败。
npm ERR! npm可能不是问题。上面可能还有其他日志记录输出。
npm ERR!可以在以下位置找到此运行的完整日志:
npm ERR! C:\ Users \ Chaokuo \ AppData \ Roaming \ npm-cache_logs \ 2019-05-05T14_44_35_607Z-debug.log
我也尝试过“电子”。然后电子应用程序出现了。但是,它可能不会调用Rust程序。开发人员模式控制台显示找不到模块'ffi-napi'。
答案 0 :(得分:0)
可能要花很长时间。请确保遵循以下所有说明: https://github.com/nodejs/node-gyp
您的操作系统看起来像Windows,因此请尝试执行以下步骤:
npm install -g node-gyp
npm install --global --production windows-build-tools (could take some time)
npm config set python /path/to/executable/python2.7 (so that always use 2.7)
node-gyp configure
node-gyp build
然后添加/编辑文件binding.gyp与package.json相同的位置,如下所示:
{
"targets": [
{
"target_name": "binding",
"sources": [ "src/binding.cc" ]
}
]
}