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

私は 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 までご連絡ください。
マスタリングゴー文字列:「文字列」パッケージに深く潜るマスタリングゴー文字列:「文字列」パッケージに深く潜るMay 12, 2025 am 12:05 AM

テキストデータを処理するためのツールを提供し、基本的な文字列から高度な正規表現のマッチングにスプライシングするためのツールを提供するため、Goの「文字列」パッケージに注意する必要があります。 1)「文字列」パッケージは、パフォーマンスの問題を回避するために文字列をスプライスするために使用される結合関数など、効率的な文字列操作を提供します。 2)contensany関数などの高度な関数が含まれており、文字列に特定の文字セットが含まれているかどうかを確認します。 3)交換関数は、文字列のサブストリングを交換するために使用され、交換順序とケースの感度に注意を払う必要があります。 4)分割関数は、セパレーターに従って文字列を分割することができ、しばしば正規表現処理に使用されます。 5)使用するときは、パフォーマンスを考慮する必要があります。

Goの「エンコード/バイナリ」パッケージ:バイナリ操作のためのあなたの頼みGoの「エンコード/バイナリ」パッケージ:バイナリ操作のためのあなたの頼みMay 12, 2025 am 12:03 AM

「エンコード/バイナリ」パッケージを包みます

バイトスライス操作チュートリアル:「バイト」パッケージをマスターするバイトスライス操作チュートリアル:「バイト」パッケージをマスターするMay 12, 2025 am 12:02 AM

GOでBYTESパッケージをマスターすると、コードの効率と優雅さを向上させることができます。 1)バイナーズパッケージは、バイナリデータの解析、ネットワークプロトコルの処理、およびメモリ管理に不可欠です。 2)bytes.bufferを使用して、バイトスライスを徐々に構築します。 3)BYTESパッケージは、バイトスライスの検索、交換、およびセグメント化の関数を提供します。 4)BYTES.READERタイプは、特にI/O操作でのバイトスライスのデータを読み取るのに適しています。 5)BYTESパッケージは、GoのGarbage Collectorと協力して機能し、ビッグデータ処理の効率を向上させます。

「文字列」パッケージを使用して、GOの文字列を操作しますか?「文字列」パッケージを使用して、GOの文字列を操作しますか?May 12, 2025 am 12:01 AM

Goで「文字列」パッケージを使用して、文字列を操作できます。 1)文字列を使用して、文字列の両端で白文字を削除します。 2)文字列を使用して、指定された区切り文字に従って文字列をスライスに分割します。 3)文字列スライスを文字列から1つの文字列にマージします。 4)文字列を使用して、文字列に特定のサブストリングが含まれているかどうかを確認します。 5)文字列を使用して、グローバルな交換を実行します。使用するときは、パフォーマンスと潜在的な落とし穴に注意してください。

「バイト」パッケージを使用してGOのバイトスライスを操作する方法(ステップバイステップ)「バイト」パッケージを使用してGOのバイトスライスを操作する方法(ステップバイステップ)May 12, 2025 am 12:01 AM

検索、分割、結合、およびバッファリングを提供するために、ビートレスリックマニピュレーションのために強力に効果的に効果的に効果的に効果的です

BYTESパッケージに移動:代替案は何ですか?BYTESパッケージに移動:代替案は何ですか?May 11, 2025 am 12:11 AM

thealternativestogo'sbyteSpackageincludeStringspackage、bufiopackage、andcustomstructs.1)thestringspackagecanbeusedby byconvertingbytestostostringsand.2)TheBufiopackageisidealforhhnetlimagreatreamsofreamSoftaefftaefftaimefiditipry.3)

Goのバイトスライスの操作:「バイト」パッケージのパワーGoのバイトスライスの操作:「バイト」パッケージのパワーMay 11, 2025 am 12:09 AM

「バイト」パッケージを積極的に構成することは、lices、重要なもの、ネットワークプロトコル、およびfilei/o.itofferslargedatasets、readerforsimulatingstreamreading、およびjo inforffffishideの調整、およびバッファーフォーハンドリングラーゲットアセット、およびバッファリングリケートのfunctionsfunctionsfunctionslei/o

Go Stringsパッケージ:弦操作の包括的なガイドGo Stringsパッケージ:弦操作の包括的なガイドMay 11, 2025 am 12:08 AM

Go'sstringspackageiscialforefficientsmanipulation、offeringtoolslikestrings.split()、strings.join()、strings.replaceall()、andstrings.contains()

See all articles

ホット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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール