HUGO
Menu
GitHub 87548 stars Mastodon

使用 Hugo 模塊

如何使用 Hugo 模塊。

前提條件

Hugo 模塊是 Go 模塊

您需要 Go 1.18 或更高版本以及 Git 來使用 Hugo 模塊。對於托管在 Netlify 上的舊網站,請確保 GO_VERSION 環境變量設置為 1.18 或更高。

Go 模塊資源:

初始化新模塊

使用 hugo mod init 初始化新的 Hugo 模塊。如果無法猜測模塊路徑,您必須將其作為參數提供,例如:

hugo mod init github.com/<your_user>/<your_project>

另請參閱 CLI 文檔

使用模塊作為主題

使用模塊作為主題的最簡單方法是在配置中導入它。

  1. 初始化 hugo 模塊系統:hugo mod init github.com/<your_user>/<your_project>

  2. 導入主題:

    module:
      imports:
      - path: github.com/spf13/hyde
    
    [module]
      [[module.imports]]
        path = 'github.com/spf13/hyde'
    
    {
       "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 文檔

在模塊中進行和測試更改

對項目中導入的模塊進行本地開發的一種方法是在 go.mod 中添加替換指令到包含源代碼的本地目錄:

replace github.com/bep/hugotestmods/mypartials => /Users/bep/hugotestmods/mypartials

如果您運行 hugo server,配置將重新加載,並且 /Users/bep/hugotestmods/mypartials 將被添加到監視列表。

您可以使用模塊配置的 replacements 選項,而不是修改 go.mod 文件。

打印依賴關系圖

從相關模塊目錄使用 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 模式 匹配的模塊路徑的供應商化模塊。

另請參閱 CLI 文檔

整理 go.mod、go.sum

運行 hugo mod tidy 以移除 go.modgo.sum 中未使用的條目。

另請參閱 CLI 文檔

清理模塊緩存

運行 hugo mod clean 以刪除整個模塊緩存。

注意,您還可以使用 maxAge 配置 modules 緩存。請參閱 配置緩存

另請參閱 CLI 文檔

模塊工作區

Go 1.18 中添加了工作區支持,Hugo 在 v0.109.0 版本中獲得了可靠的支持。

工作區的一個常見用例是簡化網站及其主題模塊的本地開發。

可以在 *.work 文件中配置工作區,並使用 module.workspace 設置激活,為此用途通常通過 HUGO_MODULE_WORKSPACE 操作系統環境變量控制。

請參閱 Hugo Docs 倉庫中的 hugo.work 文件示例:

go 1.20

use .
use ../gohugoioTheme

使用 use 指令,列出您要工作的所有模塊,指向其相對位置。如上面的示例所示,建議始終在列表中包含主項目(.)。

這樣,您可以啟動啟用了該工作區的 Hugo 服務器:

HUGO_MODULE_WORKSPACE=hugo.work hugo server --ignoreVendorPaths "**"

上面添加了 --ignoreVendorPaths 標志以忽略 _vendor 中的任何供應商化依賴項。如果您不使用供應商化,則不需要該標志。但現在服務器設置為監視工作區中的文件和目錄,您可以看到本地更改重新加載。


Last updated: January 1, 0001
Improve this page