使用protobufjs 7.1.2编译proto文件遇无法解析扩展项错误求助
问题原因解析
缺少第三方扩展的Proto定义文件:你用到的
grpc.gateway.protoc_gen_openapiv2.options、.validate、.google.api都是第三方自定义的Protobuf扩展,protobufjs默认不自带这些扩展的定义文件,编译时找不到这些扩展的声明就会抛出无法解析的错误。未配置依赖Proto文件的搜索路径:编译命令里没把这些第三方扩展所在的目录添加到
--proto_path(或-I)参数中,导致protobufjs编译器无法定位到这些扩展的定义文件。比如google官方的google/api/annotations.proto、grpc-gateway的protoc-gen-openapiv2/options/annotations.proto、protoc-gen-validate的validate/validate.proto这些文件的存放目录必须被纳入编译器的搜索范围。版本兼容性问题:protobufjs 7.1.2与protobufjs-cli 1.0.2的版本组合,可能对第三方扩展的解析逻辑有调整;或者你使用的第三方扩展Proto文件版本和当前工具版本不匹配,导致无法正常解析这些扩展。
内容的提问来源于stack exchange,提问作者N.SH
相关产品推荐
相关产品推荐

