ホームページ バックエンド開発 Golang Vercel で Hugo をホストする方法

Vercel で Hugo をホストする方法

Nov 30, 2024 pm 02:39 PM

私は Hugo と一緒に個人的なウェブサイトを構築することにしました。私が選択に基づいた唯一の基準はビルド時間でした。コンテンツ管理の特典に関しては、Hugo は Astro と同じレベルにあると思っていましたが、まだそこまでではありません。あるいは、これまで私が出会った他のほとんどの静的サイト ジェネレーターよりも古いため、独自の道を歩んでいるとも言えます。さらに、これは Go アプリケーションであるため、テクノロジーの選択を評価する際に考慮すべきもう 1 つの重要な要素となります。

何が追加できるのか!

はい、Hugo の機能を拡張することができます。ビルド プロセスを変更するモジュールを通じて、不足している機能を追加できます。たとえば、Hugo では MDX サポートが不足していました。ビルド時に MDX をレンダリングするモジュールを通じてこの問題に対処できます。私自身は試したことはありませんが、可能だと思われます。
また、並列ビルド パイプラインを追加することもできます (そう呼ぶことができるのであれば)。これには、Vite、Turbo、Webpack などのツールの使用が必要になる場合があります。ただし、このアプローチではビルド プロセスが複雑になり、Hugo の主要なビルド メカニズムが遅くなる可能性があります。これらの統合は、Tailwind およびその他のフロントエンド ライブラリを組み込むために使用されています。興味深いことに、Hugo の今後の機能を見ると、Tailwind と他のテクノロジーを統合する計画が示されています。

ヴェルセルを基礎にして構築する

私はいくつかのサードパーティの Hugo ツール、特に HugoMods を使用しました。フォント全体をインポートせずにウェブサイトにアイコンを追加したかったので、アイコン モジュールに注目しました。検索中に最初に表示されたのは Icons モジュールでした。 Bootstrap、Font Awesome、Feather アイコンなど、さまざまなアイコン ベンダーを提供しています。
ローカルでは、すべてが完璧に機能しました。しかし、変更をプッシュした後、何も変わっていないようでした。 Vercel のビルド ページを確認すると、次のことに気づきました...

[12:10:48.021] Running build in Washington, D.C., USA (East) – iad1
[12:10:48.210] Cloning github.com/mohessaid/mohessaid (Branch: main, Commit: eaeecd1)
[12:10:48.449] Cloning completed: 238.727ms
[12:10:49.038] Restored build cache from previous deployment (5i5sCdjnY3KZXgGBqbqfgJUjrwYB)
[12:10:49.132] Running "vercel build"
[12:10:49.714] Vercel CLI 39.0.2
[12:10:50.440] Total in 3 ms
[12:10:50.441] Error: failed to load modules: failed to download modules: binary with name "go" not found in PATH
[12:10:50.446] Error: Command "hugo --gc" exited with 1
[12:10:50.625]
ログイン後にコピー

Hugo がビルドに必要なモジュールをインストールしようとしたとき、Go バイナリが見つかりませんでした。私は迅速な解決を期待してクロードと GPT に助けを求めましたが、彼らは直接支援を提供することができませんでした。私は彼らを各ステップごとにガイドしなければなりませんでしたが、最終的には彼らが私を助けてくれるという希望を失いました。
Vercel 入力フィールドの制限がなければ、ほぼ成功する解決策として Claude を使用したこともありました。

何がうまくいきましたか?

Vercel ダッシュボードで自分の Web サイトの設定ページに移動しました。 [環境変数] タブで、「HUGO_VERSION」という名前の変数を追加し、その値を利用可能な Hugo の最新バージョンに設定しました。

How to Host Hugo in Vercel

「全般」タブで、フレームワークのプリセットとして Hugo を選択します。次に、ビルド コマンドを次のようにオーバーライドします:

curl -L https://go.dev/dl/go1.22.2.linux-amd64.tar.gz -o go1.22.2.linux-amd64.tar.gz && tar -C /usr/local -xzf go1.22.2.linux-amd64.tar.gz && export PATH=$PATH:/usr/local/go/bin && go env GOTPATH  &&  hugo --gc --minify 
ログイン後にコピー

How to Host Hugo in Vercel

注: 私は Go バージョン 1.22.2 を使用しています。これは、執筆時点で最新です。特定の要件に合わせてバージョンを変更できます。

ビルド コマンドを使用する理由

あなたの疑念はわかります。あなたと同じように、私も賢い解決策があると思っていました。最初に、[インストール コマンド] フィールドで Go をインストールしようとしましたが、惨めに失敗しました。私の徹底的なトラブルシューティングにも関わらず、Vercel のビルド プロセスはバイナリを見つけることができませんでした。
無数の潜在的な解決策を模索しましたが成功しませんでした。私は、誰かがインストール プロセス全体をビルド フィールドに直接配置していたという GitHub の問題に遭遇しました。彼らのアプローチを真似して、私は最終的に成功を収めました。この時点で、解決策はすべてを物語っています。
これらの手順をインストール コマンド フィールドに入力しようとすると、エラーが発生する可能性があります。

How to Host Hugo in Vercel

またはこれ

How to Host Hugo in Vercel

Amazon Linux Extras をインストールしても、Go インストールの課題は解決されません。この方法で利用できる Go のバージョンはかなり古いです。このアプローチを徹底的にテストしましたが、一貫して失敗しました。インストール コマンドで yum と dnf の両方のパッケージ マネージャーを使用しようとしましたが、どちらの方法でも Go バイナリの問題を解決できませんでした。


最後に、この投稿をさまざまなプラットフォーム間で共有して、どのプラットフォームが検索結果で最初に表示されるかをテストしました。私は数か月前にこれを行うつもりでした。しかし、適切な投稿ができませんでした。ここから実験をフォローできます。

以上がVercel で Hugo をホストする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Golang vs. Python:パフォーマンスとスケーラビリティ Golang vs. Python:パフォーマンスとスケーラビリティ Apr 19, 2025 am 12:18 AM

Golangは、パフォーマンスとスケーラビリティの点でPythonよりも優れています。 1)Golangのコンピレーションタイプの特性と効率的な並行性モデルにより、高い並行性シナリオでうまく機能します。 2)Pythonは解釈された言語として、ゆっくりと実行されますが、Cythonなどのツールを介してパフォーマンスを最適化できます。

Golang and C:Concurrency vs. Raw Speed Golang and C:Concurrency vs. Raw Speed Apr 21, 2025 am 12:16 AM

Golangは並行性がCよりも優れていますが、Cは生の速度ではGolangよりも優れています。 1)Golangは、GoroutineとChannelを通じて効率的な並行性を達成します。これは、多数の同時タスクの処理に適しています。 2)Cコンパイラの最適化と標準ライブラリを介して、極端な最適化を必要とするアプリケーションに適したハードウェアに近い高性能を提供します。

ゴーを始めましょう:初心者のガイド ゴーを始めましょう:初心者のガイド Apr 26, 2025 am 12:21 AM

goisidealforforbeginnersandsutable forcloudnetworkservicesduetoitssimplicity、andconcurrencyfeatures.1)installgofromtheofficialwebsiteandverify with'goversion'.2)

Golang vs. C:パフォーマンスと速度の比較 Golang vs. C:パフォーマンスと速度の比較 Apr 21, 2025 am 12:13 AM

Golangは迅速な発展と同時シナリオに適しており、Cは極端なパフォーマンスと低レベルの制御が必要なシナリオに適しています。 1)Golangは、ごみ収集と並行機関のメカニズムを通じてパフォーマンスを向上させ、高配列Webサービス開発に適しています。 2)Cは、手動のメモリ管理とコンパイラの最適化を通じて究極のパフォーマンスを実現し、埋め込みシステム開発に適しています。

Golang vs. Python:重要な違​​いと類似点 Golang vs. Python:重要な違​​いと類似点 Apr 17, 2025 am 12:15 AM

GolangとPythonにはそれぞれ独自の利点があります。Golangは高性能と同時プログラミングに適していますが、PythonはデータサイエンスとWeb開発に適しています。 Golangは同時性モデルと効率的なパフォーマンスで知られていますが、Pythonは簡潔な構文とリッチライブラリエコシステムで知られています。

GolangとC:パフォーマンスのトレードオフ GolangとC:パフォーマンスのトレードオフ Apr 17, 2025 am 12:18 AM

GolangとCのパフォーマンスの違いは、主にメモリ管理、コンピレーションの最適化、ランタイム効率に反映されています。 1)Golangのゴミ収集メカニズムは便利ですが、パフォーマンスに影響を与える可能性があります。

パフォーマンスレース:ゴラン対c パフォーマンスレース:ゴラン対c Apr 16, 2025 am 12:07 AM

GolangとCにはそれぞれパフォーマンス競争において独自の利点があります。1)Golangは、高い並行性と迅速な発展に適しており、2)Cはより高いパフォーマンスと微細な制御を提供します。選択は、プロジェクトの要件とチームテクノロジースタックに基づいている必要があります。

Golang vs. Python:長所と短所 Golang vs. Python:長所と短所 Apr 21, 2025 am 12:17 AM

GolangisidealforBuildingsCalables Systemsduetoitsefficiency andConcurrency、Whilepythonexcelsinquickscriptinganddataanalysisduetoitssimplicityand vastecosystem.golang'ssignencouragesclean、readisinediteNeditinesinedinediseNabletinedinedinedisedisedioncourase

See all articles