(Node.js) --grpc_out: protoc-gen-grpc:% 1 не является допустимым приложением Win32 - PullRequest
0 голосов
/ 22 декабря 2019

Я хочу скомпилировать мой файл .proto в заглушки, но при вводе команды:

`protoc -I =. ./protos/dummy.proto --js_out = import_style = commonjs, двоичный файл: ./ сервер --grpc_out =. / server --plugin = protoc-gen-grpc = который grpc_tools_node_protoc_plugin

Я получилследующая ошибка:

--grpc_out: protoc-gen-grpc: %1 is not a valid Win32 application.

Thigs я установил:

  • Windows 10
  • npm install -g grpc-tools
  • npm install google-protobuf
  • protoc

ПРИМЕЧАНИЕ. Я заметил, что уже есть несколько похожих вопросов, но я также не нашел ни одного для Node.js. у уже заданных вопросов есть разные решения.

1 Ответ

0 голосов
/ 22 декабря 2019

ПРОСТОЕ РЕШЕНИЕ:

Для меня команда "which" указывала на неверный путь, поэтому я удалил его и заменил его абсолютным путем к плагину. Это выглядит так:

protoc -I =. ./protos/dummy.proto --js_out = import_style = commonjs, двоичный файл: ./ сервер --grpc_out =. / server --plugin = protoc-gen-grpc = C: \ Users \ myUser \ AppData \ Roaming \ npm \node_modules \ grpc-tools \ bin \ grpc_node_plugin.exe

Объяснение:

Я не уверен, почему эта ошибка (--grpc_out: protoc-gen-grpc:% 1 не является допустимым приложением Win32), но у меня есть теория ... Команда "which" указывала на папку, а не на файл .exe. Откуда я это знаю? Когда я пытаюсь запустить только команду (в терминале)

which grpc_tools_node_protoc_plugin

Возвращает папку

/ c / Users / myUser / AppData / Roaming / npm / grpc_tools_node_protoc_plugin

...