【问题标题】:Problem generating typescript files from proto files从 proto 文件生成打字稿文件的问题
【发布时间】:2019-02-07 17:19:58
【问题描述】:

我正在尝试根据几个有效的原型文件生成打字稿文件。整个脚本在生成其他类型的文件时工作 - c#、java 等......但是,当尝试生成 typescript 文件时出现问题。

首先,我已经在全球范围内安装了 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: Access is denied.

我试过把它放在相对路径、完整路径、不带引号、引号、从后者中删除 --js_out 等...

以下是其中一个 proto 文件的外观:

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
}

我完全不知所措,我尝试搜索一些解决方案,但我在网上找不到任何东西。

【问题讨论】:

    标签: typescript protocol-buffers grpc


    【解决方案1】:

    这个问题没有“快速”的答案,因为从 proto 手动编译 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

    【讨论】:

      猜你喜欢
      • 2021-01-27
      • 1970-01-01
      • 2022-11-02
      • 1970-01-01
      • 2016-12-08
      • 1970-01-01
      • 2019-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多