HugoをVercelにデプロイするときはバージョンを指定する

ローカルで利用しているHugoのバージョンとVercelで利用するHugoのバージョンを合わせる方法について調べました。

はじめに

このブログをVercelでホスティングするためにデプロイしたところHugoのビルドがエラーになりました。

エラーログの内容を確認したところローカルとVercelで利用しているHugoのバージョンが異なっているためビルドがエラーとなっているようでした。

Vercelで使用するHugoのバージョンをローカルと合わせるためにVercelで利用するHugoのバージョンを指定する方法について調べました。

VercelでのHugoのバージョンの指定方法

最初にローカルで使用しているHugoのバージョンを確認します。

hugo version

vercel.jsonで指定する方法(非推奨)

この方法は現在推奨されていませんのでプロジェクト設定の環境変数で設定する方法を参照ください。

Vercelで利用するHugoのバージョンの指定方法について調べたところ、まずjsonファイルで定義する方法が見つかりました。プロジェクト直下にvercel.jsonを作成し以下のようにHugoのバージョンを指定します。

vercel.json
{
  "build": {
    "env": {
      "HUGO_VERSION": "0.87.0"
    }
  }
}

Hugoのバージョンをvercel.jsonに設定した後にVercelに再度デプロイしてビルドに成功することが確認できました。

ただしドキュメントのbuild.env | CLI – Vercel Docsにはbuild.envの使用は非推奨でプロジェクト設定から環境変数で設定するようにと記載があります。

Note: We recommend against using this property.

To add custom Environment Variables to your Project, please define them in the Project Settings instead. Then you will be able to take advantage of the richest feature set.

プロジェクト設定の環境変数で設定する方法

ドキュメントのFramework Versioning | Build Step – Vercel Docsに記載があるようにプロジェクト設定からHugoのバージョンを環境変数HUGO_VERSIONに設定します。

プロジェクト設定の環境変数でHUGO_VERSIONを設定

設定するHugoのバージョンはGithubのHugoのリポジトリのリリースアッセットに存在するバージョンを指定する必要があります。

設定した後にvercel.jsonからbuild.envを削除して再度デプロイしてビルドに成功することが確認できました。

まとめ

HugoをVercelにデプロイする場合はプロジェクト設定からローカルで使用しているHugoのバージョンを環境変数のHUGO_VERSIONに設定する。