Create hugo_stats.json if it's mounted but does not exists

A common pattern for Tailwind 3 is to mount that file to get it on the server watch list.

A common pattern is also to add hugo_stats.json to .gitignore.

This has meant that the first time you start the server (no hugo_stats.json), it just doesn't work as expected.

Fixes #11264
This commit is contained in:
Bjørn Erik Pedersen
2023-07-19 10:28:56 +02:00
parent f1a061e9ed
commit 7ae62f4aa3
4 changed files with 37 additions and 4 deletions

View File

@@ -23,6 +23,7 @@ import (
"time"
"github.com/bep/logg"
"github.com/gohugoio/hugo/hugofs/files"
"github.com/gohugoio/hugo/langs"
"github.com/gohugoio/hugo/publisher"
"github.com/gohugoio/hugo/tpl"
@@ -491,14 +492,12 @@ func (h *HugoSites) writeBuildStats() error {
HTMLElements: *htmlElements,
}
const hugoStatsName = "hugo_stats.json"
js, err := json.MarshalIndent(stats, "", " ")
if err != nil {
return err
}
filename := filepath.Join(h.Configs.LoadingInfo.BaseConfig.WorkingDir, hugoStatsName)
filename := filepath.Join(h.Configs.LoadingInfo.BaseConfig.WorkingDir, files.FilenameHugoStatsJSON)
if existingContent, err := afero.ReadFile(hugofs.Os, filename); err == nil {
// Check if the content has changed.