protoc を使用して gPRC の proto ファイルの JavaScript 呼び出しコードを生成する

1 時間苦労して、最終的に protoc を使用して gPRC サービス インターフェイスの JavaScript 呼び出しコードを生成する方法を見つけました。皆さんのお役に立てればと思い、記録しました。

気をつけて!nodejs に対応するスタブ コードを生成する場合、この記事は適用されません。
気をつけて!nodejs に対応するスタブ コードを生成する場合、この記事は適用されません。
気をつけて!nodejs に対応するスタブ コードを生成する場合、この記事は適用されません。

記事ディレクトリ

関連する質問

この記事では主に、protoc を使用して gPRC サービス インターフェイスの JavaScript 呼び出しコードを生成する方法を紹介します。

grpc 呼び出しコードを生成nodejsまたは使用する場合、この記事は次の問題を解決できます。javascript

  1. 「protoc-gen-grpc-web」は、内部コマンドまたは外部コマンド、操作可能なプログラム
    、またはバッチ ファイルとして認識されません。&&'protoc-gen-js' は内部コマンド、外部コマンド、または操作可能なプログラムとして認識されません
  2. –js_out: protoc-gen-js: プラグインがステータス コード 1 で失敗しました。
  3. –js_out: [ファイル名].proto: オプション: モードは必須です
  4. –proto_path には空のディレクトリ名が渡されました。(現在のディレクトリには「.」を使用します。)ext:.,–proto_path=。

上記の問題が発生しない場合でも、この記事を段階的に実行することで生成することができます。迂回路を回避できたことを画面の前で祝福します。

解決プロセス

次の作業は Windows システムを例にしています

  1. ダウンロード3.20.1バージョンprotoc、アドレス: https://github.com/protocolbuffers/protobuf/releases/tag/v3.20.1私たちは主にそれらを使用しますprotoc.exe通常の状況では、ダウンロードはprotoc.exe圧縮パッケージのディレクトリに圧縮パッケージとして保存されますbin

なぜ3.20.1このバージョンを使用する必要があるのか​​については、ここをクリックして参照してください
。理解できませんが、3.20.1私が使用したいバージョンです。

  1. ダウンロードprotoc-gen-grpc-web、アドレス: https://github.com/grpc/grpc-web/releases/ダウンロードは exe ファイルで、デフォルトのファイル名にはバージョン番号が付いています。ここでは、名前を変更する必要がありますprotoc-gen-grpc-web.exe

  2. (Windows システムを例にします)protoc.exe名前を変更したファイルを、protoc-gen-grpc-web.exeproto ファイルが存在するフォルダーに配置します。(もちろん、環境変数を調整したい場合は調整できます。しかし、より便利かもしれません。) この時点で、フォルダーはおそらく次のようになります。
    ここに画像の説明を挿入します

  3. 次に、proto ファイルが配置されているフォルダーでコマンドを実行します(必ず上記の手順に従って、proto ファイルが配置されているフォルダーに配置してください) protoc.exeprotoc-gen-grpc-web.exe

.\protoc.exe --proto_path=. [你的proto文件名].proto --js_out=import_style=commonjs:. --grpc-web_out=import_style=commonjs,mode=grpcwebtext:.

ここで大きな穴に足を踏み入れてしまった!システム変数に設定されている元のプロトコルのバージョンは であるため、最初にそれを使用し3.21ない場合は、引き続き version代わりにバージョンが使用されます.\protoc.exeprotoc3.213.20.1

  1. フォルダー内を見てください。考えていた 2 つの js ファイルが生成されているはずです。
    ここに画像の説明を挿入します

役に立った場合は、「いいね!」を押して、この記事がみんなの役に立つことを知らせてください〜
ちなみに、それは私にとっても嬉しいです、ありがとう!^_^

おすすめ

転載: blog.csdn.net/weixin_52027058/article/details/126691452