Maison >développement back-end >Golang >Comment éviter les dépendances indirectes dans votre fichier « go.mod » ?

Comment éviter les dépendances indirectes dans votre fichier « go.mod » ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-10 09:17:02877parcourir

How to Avoid Indirect Dependencies in Your `go.mod` File?

Éviter les dépendances indirectes dans go.mod

Les dépendances indirectes dans les fichiers go.mod surviennent lorsque vos dépendances directes dépendent d'autres packages qui ne le sont pas. t explicitement spécifié dans votre fichier go.mod. Ces dépendances indirectes sont automatiquement ajoutées à votre fichier lorsque vous exécutez des commandes comme go build.

Exemple avec Colly

Considérez le fichier go.mod suivant :

module prodenv

go 1.13

require (
    github.com/gocolly/colly v1.2.0
)

Après avoir exécuté go build, vous remarquerez peut-être que le fichier go.mod contient les dépendances indirectes suivantes :

    github.com/PuerkitoBio/goquery v1.5.1 // indirect
    github.com/antchfx/htmlquery v1.2.2 // indirect
    github.com/antchfx/xmlquery v1.2.3 // indirect
    github.com/antchfx/xpath v1.1.5 // indirect
    github.com/gobwas/glob v0.2.3 // indirect
    github.com/kennygrant/sanitize v1.2.4 // indirect
    github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca // indirect
    github.com/temoto/robotstxt v1.1.1 // indirect

Explication

Colly version 1.2 .0 n'a pas de fichier go.mod, ce qui signifie que toutes ses dépendances sont considérées comme indirectes. Par conséquent, lorsque vous incluez Colly dans votre go.mod, ses dépendances sont également ajoutées en tant que dépendances indirectes.

Solution

Malheureusement, il n'y a aucun moyen d'éviter les dépendances indirectes entièrement. Cependant, il existe quelques solutions pour relever ce défi :

  • Mettre à niveau la version des dépendances : Dans ce cas, la mise à niveau vers la version 2.0.0 ou supérieure de Colly résoudrait le problème puisque ces les versions ont des fichiers go.mod.
  • Examinez les dépendances indirectes : Examinez attentivement les dépendances indirectes pour vous assurer qu'elles sont nécessaires et éviter un gonflement inutile des dépendances.
  • Utiliser Modules avec go.mod : Encouragez vos dépendances à créer des fichiers go.mod pour leurs packages, ce qui facilitera la gestion et le contrôle des dépendances.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn