問題タブ [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.

0 投票する
1 に答える
756 参照

go - 本番環境で go モジュールを使用する必要がありますか

私は を使用していますが、Go 1.11depの組み込みのGo モジュールにかなり魅了されています

ドキュメントでは、次のように述べています。

Go 1.11 には、ここで提案されているバージョン管理されたモジュールの予備的なサポートが含まれています。モジュールは Go 1.11 の実験的なオプトイン機能であり、フィードバックを取り入れて Go 1.13 の機能を完成させる計画があります。一部の詳細は変更される可能性がありますが、将来のリリースでは Go 1.11 または 1.12 を使用して定義されたモジュールがサポートされる予定です。

そうは言っても、Goモジュールはコミュニティによって広く使用されており、かなりうまく機能しているようです.

では、新しいプロジェクトでは、Go モジュールを使用する必要がありdepますか? 決定を下すには助けが必要です。

0 投票する
1 に答える
15202 参照

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 ...

私はおそらくいくつかの基本的なことを間違っているので、あなたの忍耐とあなたが与えることができる助けに感謝します.

0 投票する
1 に答える
1533 参照

go - Go モジュールを使用する場合のリポジトリ内プロト生成のベスト プラクティス

tl;dr以前は使用するように構成されていたリポジトリGOPATHが、モジュール用に構成されました。すべてが順調です。github.com/path/to/repo/protosしかし、protoc は正しく (!)構造内のリポジトリ内で定義された protobufs の Golang コードを生成しますGOPATH。私はこれを解決するために彼らを動かしています。より良い解決策はありますか?


GitHub リポジトリがあります。議論のために、それを と呼びましょうgithub.com/acme/toolbox。サブディレクトリには、以下を含む protobuf ファイルがあります。

私がGOPATH'ing していたとき、すべてが順調で、protocGolang バインディングが生成され$GOPATH/src/github.com/acme/toolbox/protos、コードのimporting が機能しpb "github.com/acme/toolbox/protos"ました。

Go Modulesへの移行は簡単ではありませんでしたが、メリットはコストを上回り、自分自身とコードの将来性を保証しています。

protoc私の問題は、Golang バインディングを自分の任意のGOPATHクローンの外側に生成する方法がわからないことです。

ファイルが生成された後にファイルを移動していますが、これは... エレガントではありません:

より良い解決策はありますか?