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