go

go - Ciclo de importación no permitido



(3)

Tengo un problema con

ciclo de importación no permitido

Aparece cuando intento probar mi controlador. Como salida tengo

can''t load package: import cycle not allowed package project/controllers/account imports project/controllers/base imports project/components/mux imports project/controllers/account import cycle not allowed package project/controllers/account imports project/controllers/base imports project/components/mux imports project/controllers/account import cycle not allowed package project/controllers/account imports project/controllers/base imports project/components/mux imports project/controllers/routes imports project/controllers/base

¿Alguien puede decirme cómo leer o entender este error? ¿Dónde está mal la dependencia?


Acabo de encontrar esto. Puede estar accediendo a un método / tipo desde el mismo paquete utilizando el nombre del paquete en sí.

Aquí hay un ejemplo para ilustrar lo que quiero decir:

En foo.go:

// foo.go package foo func Foo() {...}

En foo_test.go:

// foo_test.go package foo // try to access Foo() foo.Foo() // WRONG <== This was the issue. You are already in package foo, there is no need to use foo.Foo() to access Foo() Foo() // CORRECT


Aquí hay una ilustración de su primer problema de ciclo de importación.

project/controllers/account ^ / / / / / / // project/components/mux <--- project/controllers/base

Como puede ver con mi gráfico ASCII incorrecto, es que está creando un ciclo de importación cuando project/components/mux importa project/controllers/account . Como Go no admite dependencias circulares, el error de import cycle not allowed durante el tiempo de compilación.


Es posible que haya importado,

project/controllers/base

dentro de

project/controllers/routes

Ya has importado antes. Eso no es compatible.