HUGO
Menu
GitHub 87548 stars Mastodon

配置構建

配置全局構建相關選項。

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) 何時使用資源文件緩存,值為 neverfallbackalways 之一。適用於將 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
disableTags
(bool) 是否排除元素標簽。默認值是 false
disableClasses
(bool) 是否排除 class 屬性。默認值是 false

鑑於 CSS 清除通常僅限於生產構建,將 buildStats 對象放在 config/production 下。

為速度而構建,在解析已發布站點時可能會有"誤報"檢測(例如,不是 HTML 元素的 HTML 元素)。這些"誤報"很少見且無關緊要。

由於部分服務器構建的性質,在服務器運行時添加新的 HTML 實體,但舊值只有在重新啟動服務器或運行常規 hugo 構建時才會被移除。


Last updated: January 1, 0001
Improve this page