私は私のMac上で数ヶ月間vScode 1.41.1を使用しました、そして私が依存関係のためにGOモジュールを使い始めるまで良く機能しました。現時点では、簡単なツールを書き換えて、別々の機能のためにパッケージを導入しています。
コード構造は次のようになります。
├── bmr.go -> package main & main(), uses below packages
├── check
│ ├── check.go -> package check
│ └── check_test.go
├── go.mod
├── go.sum
├── Push
│ ├── Push.go -> package Push
│ └── Push_test.go
└── s3objects
├── s3objects.go -> package s3objects
└── s3objects_test.go
_
My go.modファイルは次のようになります。
module github.com/some-org/business-metrics-Restore.
go 1.13
require (
github.com/aws/aws-sdk-go v1.28.1
github.com/go-redis/redis v6.15.6+incompatible
github.com/sirupsen/logrus v1.4.2
github.com/spf13/viper v1.6.1
github.com/stretchr/testify v1.4.0
golang.org/x/sys v0.0.0-20200113162924-86b910548bc1
)
_
シェルからMod Test/Run/Buildコマンドを呼び出すと、すべて問題ありません。しかし、「デバッグ」 - >「デバッグなしで実行」を使用すると、次のようになります。
go: finding github.com/some-org/business-metrics-restore/Push latest
go: finding github.com/some-org/business-metrics-restore latest
go: finding github.com/some-org/business-metrics-restore/check latest
go: finding github.com/some-org/business-metrics-restore/s3objects latest
build command-line-arguments: cannot load github.com/some-org/business-metrics-restore/check: module github.com/some-org/business-metrics-restore@latest found (v0.0.0-20191022092726-d1a52439dad8), but does not contain package github.com/some-org/business-metrics-restore/check
Process exiting with code: 1
_
現在、私のコードは機能ブランチにあり、D1A52439DAD8は最初(init)で、マスターでのみコミットします。ツールのコード(3つ記載の非メインパッケージ)のコードはマスターブランチにあります。ここでの問題は、上記のvscodeがマスターからの状態を取得し、この動作を上書きすることはできません。
誰かが助けてくれることができますか?
ありがとう!
敬意を表す、ラファル。
GO.MODがプロジェクトのルートにない場合は、vscodeが正しく機能しないことに気付きました。
これは、 Gopls V0.5.1 とその実験機能のマルチモジュールワークスペースのサポート 提案32394 との間、(2020年10月)がサポートされる可能性があります。
複数のモジュールがない場合でも、(プロジェクトのルートフォルダの代わりに(プロジェクトのルートフォルダの代わりに)サブフォルダのgo.mod
が管理されます(gopls.experimentalWorkspaceModule
設定を有効にする場合)。