Как получить dep, чтобы удалить неиспользуемые файлы Go, зависимости или пакеты - PullRequest
0 голосов
/ 04 декабря 2018

При добавлении новых зависимостей с использованием dep ensure -add <package> я вижу dep, добавляя полный репозиторий пакета, а не только необходимые мне части.

Например, я добавил aws-sdk-go и dep ensure помещают 87 МБ файлов в папку моих поставщиков, хотя я использую только сервис AWS Secrets Manager.

1 Ответ

0 голосов
/ 04 декабря 2018

Для решения этой проблемы вам необходимо определить [prune] настройки, которые определяют, какие файлы и каталоги могут считаться ненужными, и, таким образом, автоматически удаляются из поставщика /.

В настоящее время доступны следующие параметры:

  • unused-packages указывает, что файлы из каталогов, которые не отображаются на графике импорта пакетов, должны быть удалены
  • non-go удаляет файлы, которые не используются Go
  • go-tests prunes Go test files

Из-за предосторожности dep не обязательно сохраняет файлы, которые могут иметь юридическое значение.

Параметры обрезки по умолчанию отключены.Однако генерация Gopkg.toml через dep init добавит строки для включения опций go-tests и unused-packages сокращения на корневом уровне.

[prune]
  go-tests = true
  unused-packages = true

Для каждого проекта могут быть определены одинаковые опции сокращения.Требуется дополнительное поле имени, которое, как и для [[constraint]] и [[override]], должно быть исходным корнем , а не просто каким-либо путем импорта.

[prune]
  non-go = true

  [[prune.project]]
    name = "github.com/project/name"
    go-tests = true
    non-go = false

Почти все проекты будутштраф без установки каких-либо правил, специфичных для проекта, и включения глобально следующих правил сокращения:

[prune]
  unused-packages = true
  go-tests = true

Обычно также безопасно установить non-go = true.Однако, поскольку dep имеет только четкую модель роли, которую играют файлы Go, а файлы, не относящиеся к Go, обязательно выходят за рамки этой модели, не может быть сопоставимого общего определения безопасности.

...