fs.existsSync is not a function error 当通过create-react-app请求grpc时

fs.existsSync is not a function error when requiring grpc through create-react-app

我们正试图让 gRPC 与 React 一起工作(实际上我们试图让它与 React-Native 一起工作,但现在放弃了)。

如果您遵循 this example.

,使用简单的 node.js 事情会非常简单

我们开始使用 create-react-app 但是当我们启动应用程序时,我们收到以下错误:

existsSync is not a function

这是由位于 grpc:

的 node-pre-gyp 包的 pre-binding.js 中的这一点引起的
var existsSync = require('fs').existsSync || require('path').existsSync;

我的理解是 Webpack(或 create-react-app 的其他进程 运行)发生了一些事情,并且 returns 和空对象而不是 require('fs')

关于如何在不放弃 create-react-app 的奇迹的情况下让它工作的任何想法?

要进行测试,您只需按照以下 2 个简单的步骤操作即可:

  1. 创建反应应用程序测试应用程序
  2. 在App.js文件中添加import grpc from 'grpc';

基本上,据我现在的了解,您实际上不应该直接从任何前端使用 gRPC + Protobuf,而是更常见的是在 node.js 服务器上使用 grpc 节点包端代码,然后使用 Express 与浏览器端代码通信。

node.js 上的服务器端代码然后使用 grpc 与微服务进行通信。

我们正在测试使用 Firebase Functions 与前端进行安全通信,并且 Firebase Functions 使用 grpc.

与 Go 微服务进行通信