配置構建
配置全局構建相關選項。
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 構建時才會被移除。