Hugo+Netlifyの環境にして1年ほど経過しますが、特に問題もなかったので放置してたnetlify.toml設置をようやく行いました。
このサイトで使用しているテーマ: Beautifulhugo(submodule)
netlify.toml
公式ページにnetlify.tomlの書式があるので、hugo配下に下記の内容で作成する
[build]
publish = "public"
command = "hugo --gc --minify"
[context.production.environment]
HUGO_VERSION = "0.74.3"
HUGO_ENV = "production"
HUGO_ENABLEGITINFO = "true"
[context.split1]
command = "hugo --gc --minify --enableGitInfo"
[context.split1.environment]
HUGO_VERSION = "0.74.3"
HUGO_ENV = "production"
[context.deploy-preview]
command = "hugo --gc --minify --buildFuture -b $DEPLOY_PRIME_URL"
[context.deploy-preview.environment]
HUGO_VERSION = "0.74.3"
[context.branch-deploy]
command = "hugo --gc --minify -b $DEPLOY_PRIME_URL"
[context.branch-deploy.environment]
HUGO_VERSION = "0.74.3"
[context.next.environment]
HUGO_ENABLEGITINFO = "true"
- テーマをsubmodule化している場合
build
のコマンドにテーマを指定する必要があるので、--theme=beautifulhugo
を追加
[build]
publish = "public"
command = "hugo --theme=beautifulhugo --gc --minify"
....
- Hugoバージョンの確認
また、ローカルで使っているバージョンとnetlify.toml内のHUGO_VERSION
を合わせておきましょう
$ hugo version
Hugo Static Site Generator v0.74.3/extended darwin/amd64 BuildDate: unknown
- git push
netlify.tomlを作成・編集を終えたら、git pushしましょう
$ git add .
$ git commit -m "add netlify.toml"
$ git push
なお、Netlify管理画面のビルド時のコマンドを指定しても、netlify.tomlが優先されるので注意です。
無事にgit pushが終わり、Netlifyで自動デプロイが完了すると、下記のようなログで確認できます。
netlify.tomlを作成した後のログ
....
10:23:37 AM: Installing Hugo 0.74.3
....
10:23:41 AM: ┌────────────────────────────────────┐
10:23:41 AM: │ 1. build.command from netlify.toml │
10:23:41 AM: └────────────────────────────────────┘
10:23:41 AM:
10:23:41 AM: $ hugo --theme=beautifulhugo --gc --minify
....
netlify.tomlで指定したHugoのバージョン(0.74.3)とテーマオプション(–theme=beautifulhugo)の環境でbuildされている事が確認できました。
netlify.tomlを作成しなかった場合、Netlifyのデフォルト値でbuildされますので、Hugoのバージョンが、ずっと、0.54のままです。
なお、netlify.toml内でHugoのバージョンを最新にしても、テーマが対応していない場合もあるので、必ずしも最新に設定するとは限りませんので注意です。
buildに失敗したら、バージョンダウンしていくと良いかもしれません。