go modules - 「バージョンのない置換モジュールはディレクトリ パスである必要があります (ルート化されているか、... で始まる)」 グリッチ
コンテキスト内go モジュールの場合、replace ディレクティブを使用すると、モジュールをローカル パスに置き換えることができます。ただし、このディレクティブには特定の要件があります。パスはルート (「/」で始まる) であるか、モジュールのルートからの相対パスである必要があります。
問題の理解
提供されたシナリオでは、go モジュール (goweb) 内でローカル パッケージ (mypack) を使用しようとすると、「バージョンのない置換モジュールはディレクトリ パス (ルート化されているか、で始まる) である必要があります。」というエラーが発生しました。このエラーは、パスがreplace ディレクティブに指定された形式が必要な形式を満たしていません。
問題の解決
この問題を解決するには、replace ディレクティブのパスが次の条件を満たしていることを確認してください。 :
解決策
goweb モジュールの場合、mypack はそのルート ディレクトリの兄弟であるため、正しい replace ディレクティブ
<code class="go">replace mypack => ../mypack</code>
さらに、この置換が効果的に機能するには、mypack をそのディレクトリに go.mod ファイルを追加して go モジュールに変換する必要もあります。これは、mypack ディレクトリ内でコマンド go mod init mypack を実行することで実行できます。
その他の考慮事項
アプリとそれが使用するパッケージが同じ一部である場合go モジュールを go.mod に追加する必要はありません。コード内でパッケージを参照するだけで十分です。
リソース
以上がGo モジュールが「バージョンのない置換モジュールはディレクトリ パス (ルート化されているか、... で始まる) である必要があります」エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。