Использование модулей Hugo
Предпосылка
Инициализация нового модуля
Используйте hugo mod init
для инициализации нового модуля Hugo. Если не удается угадать путь к модулю, Вы должны указать его в качестве аргумента, например:
hugo mod init github.com/gohugoio/myShortcodes
Также смотрите CLI документацию.
Использование модуля для темы
Самый простой способ использовать модуль для темы - это импортировать его в config
.
- Инициализируйте систему модулей hugo:
hugo mod init github.com/<your_user>/<your_project>
- Импортируйте тему в Ваш
config.toml
:
[module]
[[module.imports]]
path = "github.com/spf13/hyde"
Обновление модулей
Модули будут загружены и добавлены, когда Вы добавите их в качестве импорта в Вашу конфигурацию, смотрите импорт модулей.
Для обновления или управления версиями Вы можете использовать hugo mod get
.
Несколько примеров:
Обновление всех модулей
hugo mod get -u
Рекурсивное обновление всех модулей
hugo mod get -u ./...
Обновление одного модуля
hugo mod get -u github.com/gohugoio/myShortcodes
Получить конкретную версию
hugo mod get github.com/gohugoio/myShortcodes@v1.0.7
Также смотрите CLI документацию.
Внесите и протестируйте изменения в модуле
Один из способов выполнить локальную разработку модуля, импортированного в проект, - это добавить директиву replace в локальный каталог с источником в go.mod
:
replace github.com/bep/hugotestmods/mypartials => /Users/bep/hugotestmods/mypartials
Если у вас запущен hugo server
, конфигурация будет перезагружена и /Users/bep/hugotestmods/mypartials
будет помещен в список наблюдения.
Обратите внимание, что начиная с версии v.0.77.0 Вы можете использовать параметр конфигурации модулей replacements
.
Печать графика зависимостей
Используйте hugo mod graph
из соответствующего каталога модуля, и он распечатает граф зависимостей, включая вендор, замену модуля или отключенный статус.
Например:
hugo mod graph
github.com/bep/my-modular-site github.com/bep/hugotestmods/mymounts@v1.2.0
github.com/bep/my-modular-site github.com/bep/hugotestmods/mypartials@v1.0.7
github.com/bep/hugotestmods/mypartials@v1.0.7 github.com/bep/hugotestmods/myassets@v1.0.4
github.com/bep/hugotestmods/mypartials@v1.0.7 github.com/bep/hugotestmods/myv2@v1.0.0
DISABLED github.com/bep/my-modular-site github.com/spf13/hyde@v0.0.0-20190427180251-e36f5799b396
github.com/bep/my-modular-site github.com/bep/hugo-fresh@v1.0.1
github.com/bep/my-modular-site in-themesdir
Также смотрите CLI документацию.
Поставщик Ваших модулей
hugo mod vendor
запишет все зависимости модуля в папку _vendor
, которая затем будет использоваться для всех последующих сборок.
Обратите внимание, что:
- Вы можете запустить
hugo mod vendor
на любом уровне в дереве модулей. - Вендоринг не будет хранить модули, хранящиеся в папке
themes
. - Большинство команд принимают флаг
--ignoreVendorPaths
, который затем не будет использовать поставленные модули в_vendor
для путей модулей, соответствующих заданному шаблону Glob. Обратите внимание, что до Hugo 0.75 этот флаг назывался--ignoreVendor
и был «все или ничего».
Также смотрите CLI документацию.
Приведение в порядок go.mod, go.sum
Запустите hugo mod tidy
, чтобы удалить неиспользуемые записи в go.mod
и go.sum
.
Также смотрите CLI документацию.
Очистка кеша модуля
Запустите hugo mod clean
, чтобы удалить весь кеш модулей.
Обратите внимание, что вы также можете настроить кеш modules
с помощью maxAge
, смотрите кеш файлов.
Также смотрите CLI документацию.