Vue JS 不支持模块@google-cloud/speech?
Module @google-cloud/speech not supported for Vue JS?
我正在使用 Google Cloud API Speech-to-Text Node 客户端库。工作得很好,并且在 their documentation 中有很好的描述。
当我想在 VueJS 中使用它时出现了问题:它似乎不受支持。
第一次尝试:
npm run serve
returns
ERROR Failed to compile with 3 errors 11:35:13
This dependency was not found:
* http2 in ./node_modules/@grpc/grpc-js/build/src/channel.js, ./node_modules/@grpc/grpc-js/build/src/subchannel.js and 1 other
但是 http2
现在是 Node 中的核心模块,当我 运行 node -p http2
我确实得到了结果。
第二次尝试:
npm i http2
npm run serve
returns
WARNING Compiled with 1 warnings 11:41:07
warning in ./node_modules/http2/lib/protocol/index.js
Critical dependency: require function is used in a way in which dependencies cannot be statically extracted
- 在浏览器中,控制台提供错误
Uncaught Error: not supported
at Root.loadSync (root.js?ee6e:234)
at Object.loadSync (index-light.js?071f:69)
at Object.eval (index.js?f193:244)
at eval (index.js:250)
at Object../node_modules/@grpc/proto-loader/build/src/index.js (app.js:1383)
at __webpack_require__ (app.js:724)
at fn (app.js:101)
at Object.eval (grpc.js?6f5f:34)
at eval (grpc.js:288)
at Object../node_modules/google-gax/build/src/grpc.js
我的 Vue 应用程序是基本的,可以通过 运行ning vue create app
使用 vue-cli
检索。然后我在 HelloWorld 组件中添加了 the quickstart guide.
中显示的基本代码
我的理论是:由于 gRPC,VueJS 无法使用 google-gax 模块。你怎么看?
目前无法从浏览器使用 Google 云 API 客户端库,例如您正在使用的客户端库。如您所述,这些库使用 gRPC,而 gRPC 又使用 http2。问题是目前没有主流浏览器允许 JavaScript 库使用 HTTP/2 协议的全部功能,因此目前没有完整的浏览器 shim 用于 Node http2 模块。
您从 npm 获得的 http2 模块是一个不同的库,具有不同的 API。出于同样的原因,它很可能在浏览器中也不起作用。
我正在使用 Google Cloud API Speech-to-Text Node 客户端库。工作得很好,并且在 their documentation 中有很好的描述。 当我想在 VueJS 中使用它时出现了问题:它似乎不受支持。
第一次尝试:
npm run serve
returns
ERROR Failed to compile with 3 errors 11:35:13
This dependency was not found:
* http2 in ./node_modules/@grpc/grpc-js/build/src/channel.js, ./node_modules/@grpc/grpc-js/build/src/subchannel.js and 1 other
但是 http2
现在是 Node 中的核心模块,当我 运行 node -p http2
我确实得到了结果。
第二次尝试:
npm i http2
npm run serve
returns
WARNING Compiled with 1 warnings 11:41:07
warning in ./node_modules/http2/lib/protocol/index.js
Critical dependency: require function is used in a way in which dependencies cannot be statically extracted
- 在浏览器中,控制台提供错误
Uncaught Error: not supported
at Root.loadSync (root.js?ee6e:234)
at Object.loadSync (index-light.js?071f:69)
at Object.eval (index.js?f193:244)
at eval (index.js:250)
at Object../node_modules/@grpc/proto-loader/build/src/index.js (app.js:1383)
at __webpack_require__ (app.js:724)
at fn (app.js:101)
at Object.eval (grpc.js?6f5f:34)
at eval (grpc.js:288)
at Object../node_modules/google-gax/build/src/grpc.js
我的 Vue 应用程序是基本的,可以通过 运行ning vue create app
使用 vue-cli
检索。然后我在 HelloWorld 组件中添加了 the quickstart guide.
我的理论是:由于 gRPC,VueJS 无法使用 google-gax 模块。你怎么看?
目前无法从浏览器使用 Google 云 API 客户端库,例如您正在使用的客户端库。如您所述,这些库使用 gRPC,而 gRPC 又使用 http2。问题是目前没有主流浏览器允许 JavaScript 库使用 HTTP/2 协议的全部功能,因此目前没有完整的浏览器 shim 用于 Node http2 模块。
您从 npm 获得的 http2 模块是一个不同的库,具有不同的 API。出于同样的原因,它很可能在浏览器中也不起作用。