Golang での依存関係管理: 削除された GitHub リポジトリの処理
Golang では、Node の NPM レジストリとは異なり、GitHub 所有者がリポジトリを削除し、依存プロジェクトを使用できなくします。これにより、依存関係の安全性について疑問が生じます。
Golang のアプローチ
Golang は、NodeJS とは異なるアプローチに従っています。これにより、リポジトリ所有者は GitHub からパッケージを削除できますが、依存関係が壊れるのを防ぐメカニズムが導入されています。
モジュール プロキシ
ほとんどの Golang プロジェクトはモジュール プロキシを使用しますデフォルトでは。 Golang 自体によって提供されるこのプロキシは、ダウンロードされたモジュールをローカルにキャッシュします。リポジトリが GitHub から削除されても、プロキシはキャッシュされたモジュールを使用して依存プロジェクトを引き続き提供できます。
インポート パスとバニティ インポート
各 Golang パッケージにはインポートがあります。パスはその位置を表します。パッケージ所有者はパッケージのインポート パスを変更することができ、その結果依存関係が変更されます。ただし、通常は、ホスティング サイトが変更されても一定のままのバニティ インポート パスを使用します。これにより、依存プロジェクトが正しく機能し続けることが保証されます。
アクションが必要
ほとんどの場合、依存関係パッケージのリポジトリが GitHub から削除される場合、アクションは必要ありません。モジュール プロキシを使用していない場合、またはパッケージのホスティング サイトが変更され、一定ではないインポート パスを使用している場合は、コード内のインポート パスを調整する必要がある場合があります。
結論
GitHub リポジトリの削除は NodeJS で問題を引き起こす可能性がありますが、モジュール プロキシとバニティ インポート パスを含む Golang のアプローチによりこの問題は軽減されます。依存関係のあるプロジェクトがそのような削除の影響を受ける可能性は低く、依存関係の安全性と信頼性が確保されます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3