Использование:
go mod why [-m] [-vendor] packages...
go mod why показывает кратчайший путь в графе импорта от основного модуля к каждому из перечисленных пакетов.
Вывод представляет собой последовательность строф, по одной для каждого пакета или модуля, названного в командной строке, разделенных пустыми строками. Каждая строфа начинается со строки комментария, начинающейся с символа #, обозначающего целевой пакет или модуль. Последующие строки показывают путь через граф импорта, по одному пакету в строке. Если на пакет или модуль нет ссылки из основного модуля, в строфе будет отображаться единственное примечание в скобках, указывающее на этот факт.
Например:
$ go mod why golang.org/x/text/language golang.org/x/text/encoding
# golang.org/x/text/language
rsc.io/quote
rsc.io/sampler
golang.org/x/text/language
# golang.org/x/text/encoding
(main module does not need package golang.org/x/text/encoding)
Флаг -m заставляет go mod why обрабатывать свои аргументы как список модулей. go mod why будет печатать путь к любому пакету в каждом из модулей. Обратите внимание, что даже когда используется -m, go mod why запрашивает граф пакета, а не граф модуля, напечатанный go mod graph.
Флаг -vendor заставляет go mod why игнорировать импорт в тестах пакетов вне основного модуля (как это делает go mod vendor). По умолчанию go mod why считает, что граф пакетов соответствует шаблону all. Этот флаг не действует после Go 1.16 в модулях, которые объявляют go 1.16 или выше (с использованием директивы go в go.mod), поскольку значение all изменилось, чтобы соответствовать набору пакетов, подобранному go mod vendor.
Читайте также:
- Модули в Golang: команды с поддержкой модулей, go mod tidy
- Модули в Golang: команды с поддержкой модулей, go mod vendor
- Модули в Golang: команды с поддержкой модулей, go mod verify
Комментариев нет:
Отправить комментарий