重建 IBM 的本机 npm 模块 vs 结构的代码扩展时出错

Error in rebuild native npm-module of IBM vs code extesion for fabric

我正在为 hyperledger fabric 开发 Visual Studio 代码扩展 IBM Blockchain 平台。我已经安装了 IBM vs 代码扩展。但是当它进入重建本机节点模块时。它抛出了一个错误

Failed to activate extension: Failed to execute command "npm" with arguments "rebuild, grpc, --target=7.1.11, --runtime=electron, --update-binary, --fallback-to-build, --target_arch=x64, --dist-url=https://atom.io/download/electron" return code 1

VSCode 版本是 1.43.0.

VS 市场版本为 V1.0.23

node-gyp 版本是 6.1.0.

谁能帮我解决我遇到的问题?

谢谢。

升级到最新版本 vscode 的用户报告了类似的问题。一个可能的原因是 Ubuntu 19 gcc 编译器当前不编译 gRPC 本机源代码。所以最好使用 Ubuntu 18.04 或 16.04,直到它与 grpc-node 一起排序。

目前更好的解决方法是安装以前版本的 VS Code (1.39.2),可以在这里下载 - https://code.visualstudio.com/updates/v1_39

问题与 VSCode 使用 electron 和 fabric 相关,fabric-sdk-node 需要节点 grpc,这是一个本地模块。 node grpc 试图通过为某些平台的某些版本的 node grpc 提供预构建的二进制文件来让生活更轻松。这意味着为 windows、linux 和 mac 以及特殊环境(如 electron)和所有不同版本的节点 grpc 提供二进制文件。由于 vscode 不断更改 electron 的版本并且 fabric-node-sdk 已针对节点 grpc 的特定版本进行了测试,因此需要维护大量预构建的二进制文件,因此没有可用的预构建二进制文件。

没有预构建的二进制文件节点 grpc 回退到从源代码编译。编译可能只会针对每个平台的特定版本的编译器进行测试,并且对编译器的更改(例如 linux 最新的 gcc 版本是 9,但 ubuntu 18.04 仍然使用 gcc 7)可能意味着源代码不会编译。

这就是您可能遇到问题的原因。将 vscode 降级到 1.39 允许节点 grpc 下拉预构建的二进制文件,避免您在从源代码构建扩展时可能遇到的任何问题。

问题是 IBP Extension 对此无能为力,因为它取决于 electron vscode 决定使用的版本,无论 grpc 是否发布预构建的二进制文件加上版本该 fabric-sdk-node 已经过测试并在其依赖项中指定。

如其他答案中所述,解决此问题的最可靠选择是将 vscode 降级为 1.39