安装了[email protected](也尝试了@ 4.0.7)并安装了grpc和@ grpc / proto-loader。当我发射电子时,我得到一个运行时错误
未捕获错误:无法加载gRPC二进制模块,因为它没有为当前系统安装预期目录:electron-v4.0-darwin-x64-unknown发现:[node-v64-darwin-x64-unknown]这个问题通常可以通过在当前系统上运行“npm rebuild”来修复
当然我尝试运行建议的解决方案npm rebuild
,但这并没有解决问题。我也尝试过重建grpc模块
npm rebuild grpc --build-from-source --runtime=electron --target=4.0.0 --target_archx64 --dturl=https://atom.io/download/electron
我尝试从头开始卸载所有内容。我们正在克隆电子快速启动仓库,因此在克隆和安装模块后,我安装了针对特定版本的grpc
npm install grpc --runtime=electron --target=<electron version>
这导致了同样的错误,所以我尝试重建
npm install --save-dev electron-rebuild // to rebuild grpc module
如果我删除node_modules
和package-lock.json
,然后重新安装npm install
我得到一个成功的消息(不要注意版本,我看着我的版本是匹配的)看起来像“缺少”模块已安装
node-pre-gyp WARN使用node-pre-gyp的请求https下载[grpc]
成功:通过远程安装“/../electron/node_modules/grpc/src/node/extension_binary/node-v64-darwin-x64-unknown/grpc_node.node”
[email protected] postinstall /../electron/node_modules/protobufjs节点脚本/ postinstall
[email protected] postinstall /../electron/node_modules/electron node install.js
我在这里找到了答案:https://github.com/grpc/grpc-node/issues/762
我尝试的解决方案仍然是我需要的解决方案。不确定我最初做错了什么!
对于未来的Google员工,摘要如下:
grpc_node模块似乎是针对NODE_MODULE_VERSION = 64编译的,但是自4.0.4切换到电子4 ...指定NODE_MODULE_VERSION = 69并且在运行时尝试加载模块时不匹配。
所以,我要解决的是