Maison >développement back-end >Golang >Pourquoi Go Modules renvoie-t-il l'erreur « Le module de remplacement sans version doit être le chemin du répertoire (enraciné ou commençant par...) » ?
go modules - "le module de remplacement sans version doit être le chemin du répertoire (rooté ou commençant par...") Glitch
Dans le contexte des modules go, la directive replace permet de remplacer un module par un chemin local. Cependant, cette directive a une exigence spécifique : le chemin doit être soit rooté (commençant par "/"), soit relatif à la racine du module.
Comprendre le problème
Dans le scénario fourni, une tentative d'utilisation d'un package local (mypack) dans un module go (goweb) a entraîné l'erreur : "Le module de remplacement sans version doit être un chemin de répertoire (rooté ou commençant par .)" Cette erreur indique que le chemin spécifié pour la directive replace ne répond pas au format requis.
Résolution du problème
Pour résoudre ce problème, assurez-vous que le chemin de la directive replace répond aux conditions suivantes :
Solution
Dans le cas du module goweb, puisque mypack est un frère de son répertoire racine, la directive de remplacement correcte est :
<code class="go">replace mypack => ../mypack</code>
De plus, pour que ce remplacement fonctionne efficacement, mypack doit également être converti en module go en ajoutant un fichier go.mod à son répertoire. Cela peut être fait en exécutant la commande go mod init mypack dans le répertoire mypack.
Autres considérations
Si l'application et le package qu'elle utilise font partie du même go module, l’ajouter à go.mod n’est pas nécessaire. Il suffit de se référer au package dans le code.
Ressources
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!