web-dev-qa-db-fra.com

Comment utiliser correctement les modules Go dans VSCode?

J'ai utilisé VSCode 1.41.1 sur mon Mac pendant quelques mois et cela a fonctionné bien jusqu'à ce que je commence à utiliser les modules GO pour la gestion de la dépendance. Pour le moment, je réécrit un outil simple et je présente des packages pour des fonctionnalités séparées.

Ma structure de code ressemble à ceci:

├── 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

Mon fichier go.mod ressemble à ceci:

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
)

Tout va bien lorsque j'invoque les commandes de test/exécution/de construction de la coquille. Mais quand j'utilise "débogage" -> "courir sans débogage" je reçois:

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

Mon code est actuellement dans une branche de fonctionnalité et D1A52439DAD8 est le premier (init) et seulement commettez-vous en maîtrise. Aucun code pour l'outil (incl. 3 packages non principaux mentionnés) est dans la branche principale. Le problème ici est que, pour une raison quelconque, comme vous le voyez au-dessus de VSCODE FETCHES Etat de Master et je ne peux pas remplacer ce comportement.

Quelqu'un peut-il m'aider?

Merci!

Cordialement, Rafal.

4
Rafał Radecki

J'ai réalisé que si le go.mod n'est pas à la racine de votre projet vscode ne fonctionne pas correctement

Cela pourrait maintenant (octobre 2020) être pris en charge, à la suite de GOPLS V0.5.1 et sa fonctionnalité expérimentale Support de travail de travail multi-module à partir de Proposition 32394 .

Même si vous n'avez pas de modules multiples, un go.mod Dans un sous-dossier (au lieu du dossier racine de votre projet) sera mieux géré (si vous activez le gopls.experimentalWorkspaceModule réglage).

2
VonC