1. ホーム
  2. go

[解決済み] インポートサイクル不可

2022-03-02 19:32:30

質問

で困っています。

インポートサイクル不可

コントローラをテストしようとしているときに表示されます。以下はその出力です。

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

このエラーはどのように読み解けばいいのでしょうか?依存関係が間違っているのはどこですか?

どうすればいいですか?

ここでは、最初のインポートサイクルの問題を図解します。

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

私の下手なアスキーチャートでおわかりのように、インポートサイクルを作成しているのは、以下の場合です。 project/components/mux インポート project/controllers/account . Go は循環的な依存関係をサポートしないので、以下のようになります。 import cycle not allowed というエラーをコンパイル時に発生させます。