使用 protoc-gen-grpc-web 生成原型定义时 TypeScript 定义文件出现问题
Issue with TypeScript definition files when generating proto definitions with protoc-gen-grpc-web
我生成的原型定义有问题。
我正在使用从 here (version 1.0.7).
获得的 protoc-gen-grpc-web
的最新版本
注意:我在 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
我尝试了很多不同的东西,但我就是无法使用此工具获得预期的输出。
此问题已通过 29 天前合并到项目中的修复程序解决。项目所有者已宣布他们将很快发布新版本。
可以找到更多详细信息 here。
该工具的新版本将是 version 1.0.8
我生成的原型定义有问题。
我正在使用从 here (version 1.0.7).
获得的protoc-gen-grpc-web
的最新版本
注意:我在 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
我尝试了很多不同的东西,但我就是无法使用此工具获得预期的输出。
此问题已通过 29 天前合并到项目中的修复程序解决。项目所有者已宣布他们将很快发布新版本。
可以找到更多详细信息 here。
该工具的新版本将是 version 1.0.8