Модуль @ google-cloud / speech не поддерживается для Vue JS? - PullRequest
0 голосов
/ 29 мая 2019

Я играю с клиентской библиотекой Speech-to-Text узла Google Cloud API.Работает довольно хорошо и хорошо описано в их документации .Проблемы возникли, когда я захотел использовать его в VueJS: он просто не поддерживается.

Первая попытка: npm run serve возвращает

 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 -p http2, я получаю результаты.

Вторая попытка:

  • npm i http2
  • npm run serve возвращает
 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

My Vue App является базовым и может быть восстановлено с помощью vue-cli, запустив vue create app.Затем я добавил в компонент HelloWorld базовый код, отображаемый в кратком руководстве .

Моя теория такова: VueJS не может использовать модуль google-gax из-за gRPC,Что ты думаешь?

1 Ответ

0 голосов
/ 29 мая 2019

В настоящее время клиентские библиотеки Google Cloud API, такие как та, которую вы используете, не могут использоваться из браузера. Как вы заметили, эти библиотеки используют gRPC, который, в свою очередь, использует http2. Проблема заключается в том, что в настоящее время ни один крупный браузер не позволяет библиотекам JavaScript использовать все функции протокола HTTP / 2, поэтому в настоящее время нет полной оболочки браузера для модуля Node http2.

Модуль http2, который вы получили от npm, представляет собой другую библиотеку с другим API. Скорее всего, он не работает в браузере по той же причине.

...