Кэш модуля хранится в $GOPATH/pkg/mod
или $HOME/go/pkg/mod
, если $GOPATH
не установлено.
Примечание : в общем случае кэш модуля доступен только для чтения и предназначен для использования в качестве неизменного кеша. Таким образом, вы никогда не должны пытаться что-то там редактировать, а также не должны запускать команды go
из кеша.
Кэш модуля содержит zip-файлы, распакованный исходный код модуля, а также кэш VCS (если прокси-сервер не используется). Кэш часто содержит несколько версий одной зависимости.
Если вы хотите проверить код зависимости в кеше модуля, вы можете cd
напрямую указать местоположение распакованной зависимости через:
cd $(go list -f '{{.Dir}}' -m github.com/foo/bar)
Это просит перейти к списку , чтобы сообщить о расположении каталога модуля github.com/foo/bar
в кеше модуля, по умолчанию используется версия, используемая в текущем модуле.
Учитывая, что кэш предназначен для того, чтобы быть неизменным, возникает вопрос: как вы редактируете зависимость (например, хотите ли вы добавить журнал отладки или, возможно, готовитесь к отправке исправления для зависимости от восходящего потока). Распространенным решением на этом этапе является использование gohack , которое создает изменчивую копию зависимости (по умолчанию в $HOME/gohack
, но местоположение контролируется переменной $GOHACK
). gohack
также устанавливает для текущего файла go.mod
директиву replace , указывающую на эту изменяемую копию.