从原型文件生成打字稿文件时出现问题

时间:2019-02-06 16:27:19

标签: typescript protocol-buffers grpc

我正在尝试根据几个有效的原型文件生成打字稿文件。整个脚本在生成其他类型的文件(例如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 :(得分:1)

此问题没有“快速”答案,因为从原型手动编译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