Hugoにnetlify.toml追加

Hugo+Netlifyの環境にnetlify.tomlを設置した

* 本ページはプロモーションが含まれています

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に失敗したら、バージョンダウンしていくと良いかもしれません。