配置构建
build
配置节包含全局构建相关的配置选项。
build:
buildStats:
disableClasses: false
disableIDs: false
disableTags: false
enable: false
cacheBusters:
- source: (postcss|tailwind)\.config\.js
target: (css|styles|scss|sass)
noJSConfigInAssets: false
useResourceCacheWhen: fallback
[build]
noJSConfigInAssets = false
useResourceCacheWhen = 'fallback'
[build.buildStats]
disableClasses = false
disableIDs = false
disableTags = false
enable = false
[[build.cacheBusters]]
source = '(postcss|tailwind)\.config\.js'
target = '(css|styles|scss|sass)'
{
"build": {
"buildStats": {
"disableClasses": false,
"disableIDs": false,
"disableTags": false,
"enable": false
},
"cacheBusters": [
{
"source": "(postcss|tailwind)\\.config\\.js",
"target": "(css|styles|scss|sass)"
}
],
"noJSConfigInAssets": false,
"useResourceCacheWhen": "fallback"
}
}
buildStats
参见 配置 buildStats 。
cachebusters
参见 配置缓存清除器 。
noJSConfigInAssets
(bool
) 如果设置为 true
,则关闭将 jsconfig.json
写入 /assets
文件夹的操作,该文件包含运行 js.Build 时导入的映射。此文件旨在帮助在诸如 VS Code 之类的代码编辑器中进行智能感知/导航。请注意,如果您不使用 js.Build
,则不会写入任何文件。
useResourceCacheWhen
(string
) 何时使用 /resources/_gen
中的缓存资源用于 PostCSS 和 ToCSS。有效值为 never
、 always
和 fallback
。最后一个值意味着如果 PostCSS/扩展版本不可用,则会尝试使用缓存。
配置缓存清除器
New in v0.112.0添加了 build.cachebusters
配置选项以支持使用 Tailwind 3.x 的 JIT 编译器进行开发,其中 build
配置可能如下所示:
build:
buildStats:
enable: true
cachebusters:
- source: assets/watching/hugo_stats\.json
target: styles\.css
- source: (postcss|tailwind)\.config\.js
target: css
- source: assets/.*\.(js|ts|jsx|tsx)
target: js
- source: assets/.*\.(.*)$
target: $1
[build]
[build.buildStats]
enable = true
[[build.cachebusters]]
source = 'assets/watching/hugo_stats\.json'
target = 'styles\.css'
[[build.cachebusters]]
source = '(postcss|tailwind)\.config\.js'
target = 'css'
[[build.cachebusters]]
source = 'assets/.*\.(js|ts|jsx|tsx)'
target = 'js'
[[build.cachebusters]]
source = 'assets/.*\.(.*)$'
target = '$1'
{
"build": {
"buildStats": {
"enable": true
},
"cachebusters": [
{
"source": "assets/watching/hugo_stats\\.json",
"target": "styles\\.css"
},
{
"source": "(postcss|tailwind)\\.config\\.js",
"target": "css"
},
{
"source": "assets/.*\\.(js|ts|jsx|tsx)",
"target": "js"
},
{
"source": "assets/.*\\.(.*)$",
"target": "$1"
}
]
}
}
当启用 buildStats
New in v0.115.1 时,Hugo 在每次构建时都会写入一个 hugo_stats.json
文件,其中包含在渲染输出中使用的 HTML 类等信息。此文件发生更改将触发 styles.css
文件的重新构建。您还需要将 hugo_stats.json
添加到 Hugo 的服务器监视器中。有关运行示例,请参见 Hugo Starter Tailwind Basic 。
- source
- 与 Hugo 中的虚拟组件目录(通常为
assets/...
)相关的文件(s) 的正则表达式匹配。 - target
- 当
source
更改时应失效的资源缓存中键的正则表达式匹配。您可以在表达式中使用source
中的匹配正则表达式组,例如$1
。
配置构建统计信息
build:
buildStats:
disableClasses: false
disableIDs: false
disableTags: false
enable: false
[build]
[build.buildStats]
disableClasses = false
disableIDs = false
disableTags = false
enable = false
{
"build": {
"buildStats": {
"disableClasses": false,
"disableIDs": false,
"disableTags": false,
"enable": false
}
}
}
如果将 enable
设置为 true
,则会在项目的根目录中创建一个 hugo_stats.json
文件。此文件包含已发布站点中每个 HTML 元素的 class
属性、 id
属性和标签的数组。在 从站点中删除未使用的 CSS 时,请使用此文件作为数据源。此过程也称为修剪、清除或树状抖动。
使用 disableClasses
、 disableIDs
和 disableTags
键从 hugo_stats.json
中排除 class
属性、 id
属性或标签。
由于部分服务器构建的性质,在服务器运行时会添加新的 HTML 实体,但旧值只有在重新启动服务器或运行常规 hugo
构建后才会被删除。