Проблема генерации машинописных файлов из прототипов - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь сгенерировать машинописные файлы на основе нескольких допустимых протофайлов.Весь сценарий работает при создании файлов других типов - c #, java и т. Д. Однако при попытке создания файлов машинописи возникает проблема.

Во-первых, я установил protoc глобально и пробовал с обоимиts-protoc-gen и grpc-web_out.

Я выполняю следующий код:

protoc --proto_path="path_to_dtos" --grpc-web_out=import_style=typescript,mode=grpcwebtext:"output_path" "file_path\file_name.proto"

Это успешно выполняется, и никаких ошибок не возникает, однако файлы не создаются.

При попытке выполнить с помощью ts-protoc-gen я выполняю следующий код:

protoc --proto_path="path_to_dtos" --plugin=protoc-gen-ts="path_to_plugin" --js_out=import_style=commonjs,binary:"output_path" --ts_out="output_path" "file_path\file_name.proto"

Это выдает ошибку: --ts_out: protoc-gen-ts: доступ запрещен.

Я попытался указать относительный путь, полный путь, без кавычек, кавычек, удалить из последнего --js_out и т. Д. ...

Вот как выглядит один из файлов протокак:

syntax = "proto3";

package xxx.protobuf;

option java_package = "com.xxx.communication_types.dto";
option csharp_namespace = "xxx.DataCommunicationTypes";

message VersionDto {
    int32 major = 1; // Major version of the app 
    int32 minor = 2; // Minor version of the app
    int32 revision = 3; // Revision version of the app
}

Я в полной растерянности, я пытался найти какие-то решения, но ничего не смог найти в Интернете.

1 Ответ

0 голосов
/ 07 февраля 2019

На этот вопрос нет «быстрого» ответа, так как ручная компиляция ваших DTO из прото не является широкой практикой.В большинстве случаев это что-то связанное с путями, которые вы используете.

В вашем случае, так как ошибка

- ts_out: protoc-gen-ts: доступ запрещен.

Я бы предположил, что это связано с плагином protoc-gen-ts

Попробуйте это

  1. npm install ts-protoc-gen -g это будетустановить плагин глобально, это означает, что вы можете найти его в своем AppFolder
  2. Перейдите в C: \ Users \\ AppData \ Roaming \ npm \ node_modules, если вам нравится модуль, установленный в этом каталоге, это ваша ошибка, вам нужно указать ссылку на «скомпилированную» версию.
  3. Ссылка на C: \ Users \\ AppData \ Roaming \ npm \ protoc-gen-ts.cmd
...