3 分钟阅读
https://gohugo.io/hugo-modules/use-modules/
如何使用 Hugo 模块来构建和管理您的站点。
大多数 Hugo 模块的命令需要安装更新版本的 Go(请参阅 https://golang.org/dl/)和相关的 VCS 客户端(例如 Git,请参阅 https://git-scm.com/downloads/)。如果您在 Netlify 上运行的是"旧"站点,则可能需要在环境设置中将 GO_VERSION 设置为 1.12。
有关 Go 模块的更多信息,请参见:
使用 hugo mod init
初始化一个新的 Hugo 模块。如果它无法猜测模块路径,您必须提供它作为参数,例如:
|
|
另请参阅 CLI 文档。
使用模块作为主题的最简单方法是在配置中导入它。
hugo mod init github.com/<your_user>/<your_project>
config.
=== “yaml”
```yaml
module:
imports:
- path: github.com/spf13/hyde
```
=== “toml”
```toml
[module]
[[module.imports]]
path = 'github.com/spf13/hyde'
```
=== “json”
```json
{
"module": {
"imports": [
{
"path": "github.com/spf13/hyde"
}
]
}
}
```
将模块作为导入项添加到您的配置文件时,模块将被下载并添加,详见模块导入。
要更新或管理版本,可以使用 hugo mod get
命令。
以下是一些示例:
|
|
|
|
|
|
|
|
另请参阅 CLI 文档。
在项目中导入模块并进行本地开发的一种方法是在 go.mod
中使用replace 指令将本地目录与源代码联系起来:
|
|
如果 hugo server
正在运行,则会重新加载配置,并将 /Users/bep/hugotestmods/mypartials
添加到监视列表中。
除了修改 go.mod
文件之外,您还可以使用模块配置的replacements选项。
从相关的模块目录使用 hugo mod graph
命令,它将打印依赖项图,包括 vendoring、模块替换或禁用状态。
E.g.:
|
|
另请参阅 CLI 文档。
运行hugo mod vendor
将所有模块依赖项写入_vendor
文件夹,然后在所有后续构建中使用它们。
请注意:
hugo mod vendor
。themes
文件夹中的模块不会被存储到Vendoring目录中。--ignoreVendorPaths
标志,然后不会对与给定Glob模式匹配的模块路径使用_vendor
中的供应商模块。 另请参阅CLI文档。
运行 hugo mod tidy
以删除 go.mod
和 go.sum
中未使用的条目。
另请参阅CLI文档。
运行 hugo mod clean
以删除整个模块缓存。
请注意,您还可以通过 maxAge
配置模块缓存,请参阅文件缓存。
另请参阅CLI文档。
Go 1.18 版本中增加了工作区支持,而 Hugo 在 v0.109.0 版本中得到了稳定的支持。
工作区的常见用途是简化带有其主题模块的站点的本地开发。
可以在 *.work
文件中配置工作区,并通过 module.workspace 设置激活它,对于此用法下通常由 HUGO_MODULE_WORKSPACE
操作系统环境变量控制。
在Hugo 文档库中查看hugo.work文件以获取示例:
go 1.19
use .
use ../gohugoioTheme
使用 use
指令,列出您要处理的所有模块,指向其相对位置。如上例所示,建议始终在列表中包括主项目(".
")。
有了这个指令,您可以使用启用了该工作区的Hugo服务器:
HUGO_MODULE_WORKSPACE=hugo.work hugo server --ignoreVendorPaths "**"
上面添加了 --ignoreVendorPaths
标志,以忽略 _vendor
中与给定 Glob 模式匹配的模块路径中的任何存储的依赖项。如果您不使用 vendoring,则不需要该标志。但现在,服务器设置为监视工作区中的文件和目录,您可以看到重新加载本地编辑。