hugo mod npm pack
把各 Hugo 模块的 Node.js 依赖合并进一个 npm workspace。
hugo mod npm pack 是 hugo mod 的子命令,也是 hugo mod npm 目前唯一的子命令。它把所有 Hugo 模块(Module)里声明的 Node.js 依赖合并到一个名为 packages/hugoautogen 的 npm workspace 中,省去手工逐个模块安装依赖的麻烦。
用法
hugo mod npm pack [flags] [args]在项目根目录执行。合并后的依赖写入 packages/hugoautogen/package.json,同时根目录的 package.json 会被补上一条指向 packages/hugoautogen 的 workspaces 记录。
依赖来源从各模块根目录下的 package.hugo.json 或 package.json 中读取;两者同时存在时,package.hugo.json 优先。
选项
| 选项 | 说明 |
|---|---|
-b, --baseURL string |
站点根目录的主机名(可含路径),例如 https://spf13.com/ |
--cacheDir string |
缓存目录的文件系统路径 |
-c, --contentDir string |
内容目录的文件系统路径 |
-h, --help |
显示 pack 子命令的帮助信息 |
--renderSegments strings |
要渲染的具名片段,在 segments 配置中定义 |
-t, --theme strings |
使用的主题,位于 /themes/THEMENAME/ |
继承自父命令的全局选项
| 选项 | 说明 |
|---|---|
--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 |
主题目录的文件系统路径 |
示例
在项目根目录合并所有模块的 Node.js 依赖:
hugo mod npm pack合并后按 workspace 的方式安装依赖:
npm install如果模块使用 package.hugo.json 单独维护 Hugo 侧的依赖声明,直接重新执行合并即可让它生效:
hugo mod npm pack
npm install说明
- 生成物位于
packages/hugoautogen/package.json,属于自动生成的内容,不建议手工修改,重新执行命令时它会被覆盖。 - 根目录
package.json中的workspaces记录同样由本命令写入,用于把自动生成的 workspace 纳入 npm 的依赖解析。 package.hugo.json与package.json同时存在时以前者为准,因此可以把 Hugo 相关的依赖声明与普通 npm 依赖分开维护。- 依赖加载与模块解析的其余环节,参见
hugo mod get(获取模块依赖)与hugo mod tidy(清理无用条目)。