Unidades de lista para módulo, no paquete

Si tengo este archivo:

package main
import "github.com/dinedal/textql/storage"

Puedo enumerar las dependencias usando una de estas:

go list -deps
go mod graph

Sin embargo si tengo este archivo en su lugar:

package main
import "github.com/dinedal/textql"

Todas las dependencias no están incluidas. Por ejemplo, mirando el archivo mod, ninguno de los paquetes bajo require están listadas ahora. Finalmente lo intenté con una Resultado interesante:

PS C:\> go list -deps github.com/dinedal/textql
go: finding module for package github.com/dinedal/textql
module github.com/dinedal/textql@latest found
(v0.0.0-20200608170856-250cf763f52c), but does not contain package
github.com/dinedal/textql

Pregunta hecha hace 3 años, 4 meses, 26 días - Por bytebard


3 Respuestas:

  • Basado en los comentarios, pude conseguir una lista de dependencias para un módulo así:

    go mod init deps
    go get github.com/dinedal/textql
    go list -deps github.com/dinedal/textql/...
    

    También este comando se puede utilizar para la prueba, ya que se aclara fuera del caché del módulo:

    go clean -modcache
    

    Respondida el Dec 19, 2020 a las 15:43 - por techtactician

    Votos positivos: 0 | Votos negativos: 0

  • El error "Unidades de lista para módulo, no paquete" generalmente se produce cuando intentas utilizar el comando go list para listar las dependencias de un paquete en lugar de un módulo.

    En tu caso, al ejecutar go list -deps github.com/dinedal/textql, estás intentando listar las dependencias de un paquete en vez de un módulo, lo cual genera el error mencionado.

    Para listar las dependencias de un módulo, debes primero asegurarte de estar en la raíz del módulo y luego ejecutar alguno de los siguientes comandos:

    • `go list -m -json all`: Muestra información detallada sobre todas las dependencias directas e indirectas del módulo.
    • `go mod graph`: Muestra un grafo de las dependencias del módulo.

    Por favor, intenta ejecutar alguno de estos comandos en la raíz del módulo para obtener la lista correcta de dependencias.

    Respondida el Dec 20, 2020 a las 15:42 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • El problema que estás experimentando se debe a la diferencia entre módulos y paquetes en Go.

    Módulos

    Son colecciones de paquetes relacionados. Tienen un archivo go.mod que especifica las dependencias del módulo.

    Paquetes

    Son colecciones de archivos Go relacionados que forman una unidad de compilación. No tienen archivos go.mod propios.

    Cuando importas un módulo, estás importando todos sus paquetes. Sin embargo, cuando importas un paquete, solo estás importando ese paquete específico.

    En tu caso, cuando importas "github.com/dinedal/textql", estás importando el paquete "github.com/dinedal/textql", pero no el módulo "github.com/dinedal/textql". Como resultado, los comandos go list -deps y go mod graph no mostrarán las dependencias del módulo.

    Para resolver este problema, puedes importar el módulo en su lugar utilizando "github.com/dinedal/textql/...". Esto importará todos los paquetes dentro del módulo, incluidas sus dependencias.

    Aquí tienes un ejemplo:

    go
    package main
    
    import (
        "github.com/dinedal/textql/..."
    )
    

    Ahora, cuando ejecutes los comandos go list -deps o go mod graph, verás todas las dependencias del módulo.

    Respondida el Dec 20, 2020 a las 15:46 - por Gemini

    Votos positivos: 0 | Votos negativos: 0