2

我生成的原型定义有问题。

protoc-gen-grpc-web我正在使用从这里获得的最新版本(版本 1.0.7)

注意:我在 MacOS 和 Windows 以及 1.0.5 版本上都遇到了同样的问题。

我遇到的问题是我生成的定义缺少将其与其命名空间.分开的定义Class

例如。我的输出将如下所示:

import * as jspb from "google-protobuf"

import * as google_protobuf_timestamp_pb from 'google-protobuf/google/protobuf/timestamp_pb';
import * as google_protobuf_empty_pb from 'google-protobuf/google/protobuf/empty_pb';
import * as common_basic_pb from './common/basic_pb';
import * as contact_mechanism_pb from './contact_mechanism_pb';
import * as banking_detail_pb from './banking_detail_pb';
...

export namespace IncomeTax {
  export type AsObject = {
    id: string,
    personId: string,
    dateCreated?: google_protobuf_timestamp_pb.Timestamp.AsObject,
    lastUpdated?: google_protobuf_timestamp_pb.Timestamp.AsObject,
    fromDate?: google_protobuf_timestamp_pb.Timestamp.AsObject,
    thruDate?: google_protobuf_timestamp_pb.Timestamp.AsObject,
    taxNumber: string,
    country?: contact_mechanism_pbCountry.AsObject,
  }
}

见行country?: contact_mechanism_pbCountry.AsObject,

contact_mechanism_pbCountry应该是contact_mechanism_pb.Country

common_basic_pb这发生在,contact_mechanism_pb和的每种情况下banking_details_pb

但不适用于 和 的google_protobuf_timestamp_pb情况google_protobuf_empty_pb

这是我的gen-protos脚本的样子:

#!/bin/bash

mkdir -p ./src/gen

protoc -I=../protos/                                   \
       ../protos/*.proto                               \
       ../protos/**/*.proto                            \
       ../protos/**/**/*.proto                         \
       ../protos/**/**/**/*.proto                      \
       --js_out=import_style=commonjs:./src/gen \
       --grpc-web_out=import_style=commonjs+dts,mode=grpcwebtext:./src/gen

我尝试了很多不同的东西,但我无法使用这个工具获得预期的输出。

4

1 回答 1

3

此问题已通过 29 天前合并到项目中的修复程序解决。项目所有者已宣布他们将很快发布新版本。

可以在此处找到更多详细信息。

该工具的新版本将是version 1.0.8

于 2020-05-06T18:10:54.873 回答