再三あちこちで言われているハマりポイントだが、見落としがあったので自分用にメモ。
Hugo の theme(テーマ) は git submodule として保存すること
git clone はせずに、 git submodule とする。
基本的に submodule を含むリポジトリを clone する際は clone時に --recursive オプションを指定する必要があるが、Netlify では指定せずとも再帰的に clone を行なってくれる。(というより指定することができない)
Working with submodules - The GitHub Blog
netlify.toml を置こう
これはあまり言及している記事がなかった。
NetlifyにHugoのバージョンを指定する必要があるのだが、多くの記事ではNetlifyの管理コンソール上で
HUGO_VERSION : 0.xx
と指定することを推奨しているが、この点に関してHUGO公式サイトでは netlify.tomlファイルで指定することを推奨している。
そのほかにもビルド時のコマンド
hugo -D
などについても toml ファイルで指定できるため、管理上こちらを推奨。
ビルド時はテーマオプションの指定 --theme=xxx の指定を忘れなきよう
Hugoをローカルでしか触ったことがなかったため、毎度
hugo server -D
としか実行していなかったが、build 時にはテーマを指定しないとテーマが当たってくれない。
これは config.toml に
theme = "xxx"
とだけ書いてあってもダメで、build時にオプション指定されるように netlify.toml に
command = "hugo --theme=xxx -D"
と指定してやる必要がある。(もしくはNetlifyの管理コンソール上でbuild時のコマンドを指定する
)
所感
- CDサービスは使用したことがなかったので、サーバー上でbuildされていることに対しては感銘を受ける反面、build結果ファイルが(おそらく)確認できないことに対しては不安を覚える。
現にNetlify環境でなぜかテーマが当たらず原因究明のためにbuildファイルを確認したかったのだが閲覧方法がわからずに、手当たり次第に原因を探ることとなった。 - CI/CDサービス特有のbuild時にログが流れる瞬間はとても気持ちいい。急いでいるときはイライラする?
追記 2019.07.12
下記動画を参考に、カスタムドメインを設定しました。
Deploy a site in minutes with Netlify, GitHub, and Freenom!
ブログ記事などいろいろみたのですが、こちらの動画が一番わかりやすかったです。