配置构建
配置全局构建相关选项。
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
- 见下方的 构建统计 部分。
- cachebusters
- 见下方的 缓存清除器 部分。
- noJSConfigInAssets
- (
bool) 是否禁用在assets目录中写入jsconfig.json,该文件包含从运行 js.Build 的导入映射。此文件旨在帮助 VS Code 等代码编辑器中的智能感知/导航。请注意,如果您不使用js.Build,则不会写入任何文件。 - useResourceCacheWhen
- (
string) 何时使用资源文件缓存,值为never、fallback或always之一。适用于将 Sass 转译为 CSS 时。默认值是fallback。
缓存清除器
添加 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 时,Hugo 在每次构建时写入一个 hugo_stats.json 文件,其中包含渲染输出中使用的 HTML 类等。对此文件的更改将触发 styles.css 文件的重建。您还需要将 hugo_stats.json 添加到 Hugo 的服务器监视器中。请参阅 Hugo Starter Tailwind Basic 获取运行示例。
- source
- (
string) 正则表达式 匹配 Hugo 虚拟组件目录之一的文件,通常是assets/...。 - target
- (
string) 正则表达式 匹配当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
- (
bool) 是否在项目根目录中创建hugo_stats.json文件。此文件包含已发布站点中每个 HTML 元素的class属性、id属性和标签的数组。在 移除未使用的 CSS 时将此文件用作数据源。此过程也称为修剪、清除或树摇。默认值是false。 - disableIDs
- (
bool) 是否排除id属性。默认值是false。 - (
bool) 是否排除元素标签。默认值是false。 - disableClasses
- (
bool) 是否排除class属性。默认值是false。
鉴于 CSS 清除通常仅限于生产构建,将 buildStats 对象放在 config/production 下。
为速度而构建,在解析已发布站点时可能会有"误报"检测(例如,不是 HTML 元素的 HTML 元素)。这些"误报"很少见且无关紧要。
由于部分服务器构建的性质,在服务器运行时添加新的 HTML 实体,但旧值只有在重新启动服务器或运行常规 hugo 构建时才会被移除。