hugo mod
管理项目依赖图中模块的父命令,需搭配子命令使用。
hugo mod 是管理模块的一组辅助命令的父命令,用于维护项目依赖图中的 Hugo Modules。它本身不执行具体操作,必须搭配一个子命令使用,例如 hugo mod tidy。
这里的多数操作都要求系统上安装了 Go(版本不低于 Go 1.12)以及相应的版本控制系统客户端(通常是 Git)。如果只使用 /themes 目录中的模块,或者已经通过 hugo mod vendor 把它们 vendor 到本地,则不需要这些依赖。
Hugo 解析项目配置中定义的组件时,总是按固定顺序查找:_vendor 目录(未传入 --ignoreVendorPaths 参数时)、Go Modules、然后是 themes 目录中的文件夹。更多信息见 https://gohugo.io/hugo-modules/ 。
用法
hugo mod [command] [flags]子命令
| 子命令 | 说明 |
|---|---|
hugo mod clean |
删除当前项目的 Hugo Module 缓存 |
hugo mod get |
解析当前 Hugo 项目中的依赖 |
hugo mod graph |
打印模块依赖图 |
hugo mod init |
把当前项目初始化为 Hugo Module |
hugo mod npm |
各种 npm 辅助功能 |
hugo mod tidy |
删除 go.mod 与 go.sum 中未使用的条目 |
hugo mod vendor |
把所有模块依赖 vendor 到 _vendor 目录 |
hugo mod verify |
验证依赖 |
选项
| 选项 | 说明 |
|---|---|
-h, --help |
显示 mod 命令的帮助信息 |
继承自父命令的全局选项
| 选项 | 说明 |
|---|---|
--clock string |
设定 Hugo 使用的时钟,例如 --clock 2021-11-06T22:30:00.00+09:00 |
--config string |
指定配置文件,默认为 hugo.yaml、hugo.json 或 hugo.toml |
--configDir string |
配置目录,默认为 config |
-d, --destination string |
写入文件的文件系统路径 |
-e, --environment string |
构建环境 |
--ignoreVendorPaths string |
对匹配给定 Glob 模式的模块路径忽略其中的 _vendor |
--logLevel string |
日志级别:debug、info、warn 或 error |
--noBuildLock |
不创建 .hugo_build.lock 文件 |
--quiet |
以静默模式构建 |
-M, --renderToMemory |
渲染到内存,主要用于运行服务器时 |
-s, --source string |
读取文件时相对的起始文件系统路径 |
--themesDir string |
主题目录的文件系统路径 |
示例
把当前项目初始化为 Hugo Module:
hugo mod init github.com/example/my-site整理依赖清单,移除未使用的条目:
hugo mod tidy把所有依赖放入 _vendor 目录,便于离线构建:
hugo mod vendor查看模块依赖图:
hugo mod graph说明
- 使用 Go Modules 时,命令行中的模块路径通常写成仓库形式的相对标识,例如
github.com/example/my-site。 - 用
hugo mod vendorvendor 之后,构建不再需要 Go 与 VCS 客户端;此时可配合--ignoreVendorPaths控制哪些模块路径忽略_vendor。 - 组件解析顺序决定了同名模块的取用优先级,排查“改了模块却不生效”时,先确认是否命中了
_vendor目录。 - 各子命令除自己的选项外,同样接受上表列出的全局选项。