問題タブ [go-modules]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - 本番環境で go モジュールを使用する必要がありますか
私は を使用していますが、Go 1.11dep
の組み込みのGo モジュールにかなり魅了されています
ドキュメントでは、次のように述べています。
Go 1.11 には、ここで提案されているバージョン管理されたモジュールの予備的なサポートが含まれています。モジュールは Go 1.11 の実験的なオプトイン機能であり、フィードバックを取り入れて Go 1.13 の機能を完成させる計画があります。一部の詳細は変更される可能性がありますが、将来のリリースでは Go 1.11 または 1.12 を使用して定義されたモジュールがサポートされる予定です。
そうは言っても、Goモジュールはコミュニティによって広く使用されており、かなりうまく機能しているようです.
では、新しいプロジェクトでは、Go モジュールを使用する必要がありdep
ますか? 決定を下すには助けが必要です。
go - GoモジュールでGoビルドエラー「パッケージを読み込めません」を修正するには?
このチュートリアルでGo モジュールを使用して新しいプロジェクトをセットアップし、それをビルドしようとしています。
モジュールは、次の構造を持つ $GOPATH の外のフォルダーにあります。
go mod init example.com/my-project
ディレクトリで実行し、example.com/my-project
上記の go.mod ファイルを作成しました。
main.go
基本的な内容があります:
go build
ディレクトリで実行しようとするとexample.com/my-project
、次のエラー メッセージが表示されます。
can't load package: package example.com/my-project: unknown import path "example.com/my-project": cannot find module providing package example.com/my-project
.
go build
また、ディレクトリ/
の外で実行しようとしましたがexample.com/my-project
、同様の失敗した結果が得られました。
can't load package: package .: no Go files in ...
私はおそらくいくつかの基本的なことを間違っているので、あなたの忍耐とあなたが与えることができる助けに感謝します.
go - Go モジュールを使用する場合のリポジトリ内プロト生成のベスト プラクティス
tl;dr以前は使用するように構成されていたリポジトリGOPATH
が、モジュール用に構成されました。すべてが順調です。github.com/path/to/repo/protos
しかし、protoc は正しく (!)構造内のリポジトリ内で定義された protobufs の Golang コードを生成しますGOPATH
。私はこれを解決するために彼らを動かしています。より良い解決策はありますか?
GitHub リポジトリがあります。議論のために、それを と呼びましょうgithub.com/acme/toolbox
。サブディレクトリには、以下を含む protobuf ファイルがあります。
私がGOPATH
'ing していたとき、すべてが順調で、protoc
Golang バインディングが生成され$GOPATH/src/github.com/acme/toolbox/protos
、コードのimporting が機能しpb "github.com/acme/toolbox/protos"
ました。
Go Modulesへの移行は簡単ではありませんでしたが、メリットはコストを上回り、自分自身とコードの将来性を保証しています。
protoc
私の問題は、Golang バインディングを自分の任意のGOPATH
クローンの外側に生成する方法がわからないことです。
ファイルが生成された後にファイルを移動していますが、これは... エレガントではありません:
より良い解決策はありますか?