1 時間苦労して、最終的に protoc を使用して gPRC サービス インターフェイスの JavaScript 呼び出しコードを生成する方法を見つけました。皆さんのお役に立てればと思い、記録しました。
気をつけて!nodejs に対応するスタブ コードを生成する場合、この記事は適用されません。
気をつけて!nodejs に対応するスタブ コードを生成する場合、この記事は適用されません。
気をつけて!nodejs に対応するスタブ コードを生成する場合、この記事は適用されません。
関連する質問
この記事では主に、protoc を使用して gPRC サービス インターフェイスの JavaScript 呼び出しコードを生成する方法を紹介します。
grpc 呼び出しコードを生成nodejs
または使用する場合、この記事は次の問題を解決できます。javascript
- 「protoc-gen-grpc-web」は、内部コマンドまたは外部コマンド、操作可能なプログラム
、またはバッチ ファイルとして認識されません。&&'protoc-gen-js' は内部コマンド、外部コマンド、または操作可能なプログラムとして認識されません - –js_out: protoc-gen-js: プラグインがステータス コード 1 で失敗しました。
- –js_out: [ファイル名].proto: オプション: モードは必須です
- –proto_path には空のディレクトリ名が渡されました。(現在のディレクトリには「.」を使用します。)ext:.,–proto_path=。
上記の問題が発生しない場合でも、この記事を段階的に実行することで生成することができます。迂回路を回避できたことを画面の前で祝福します。
解決プロセス
次の作業は Windows システムを例にしています
- ダウンロード
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
私が使用したいバージョンです。
-
ダウンロード
protoc-gen-grpc-web
、アドレス: https://github.com/grpc/grpc-web/releases/。ダウンロードは exe ファイルで、デフォルトのファイル名にはバージョン番号が付いています。ここでは、名前をに変更する必要がありますprotoc-gen-grpc-web.exe
。 -
(Windows システムを例にします)
protoc.exe
名前を変更したファイルを、protoc-gen-grpc-web.exe
proto ファイルが存在するフォルダーに配置します。(もちろん、環境変数を調整したい場合は調整できます。しかし、より便利かもしれません。) この時点で、フォルダーはおそらく次のようになります。
-
次に、proto ファイルが配置されているフォルダーでコマンドを実行します(必ず上記の手順に従って、proto ファイルが配置されているフォルダーに配置してください)
protoc.exe
。protoc-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.exe
protoc
3.21
3.20.1
- フォルダー内を見てください。考えていた 2 つの js ファイルが生成されているはずです。
役に立った場合は、「いいね!」を押して、この記事がみんなの役に立つことを知らせてください〜
ちなみに、それは私にとっても嬉しいです、ありがとう!^_^