如何在 Vercel 中托管 Hugo
我决定和Hugo一起建立我的个人网站。我的选择唯一基于的是构建时间。我认为 Hugo 在内容管理方面与 Astro 处于同一水平,但目前还没有达到这个水平。或者,我可以说它有自己的路径,因为它比我遇到的大多数其他静态站点生成器都要旧。此外,它是一个 Go 应用程序,这是评估技术选择时要考虑的另一个重要因素。
可以添加什么!
是的,可以扩展Hugo的功能。您可以通过修改构建过程的模块添加缺少的功能。例如,我缺少 Hugo 中的 MDX 支持。我可以通过在构建时渲染 MDX 的模块来解决这个问题。我自己没有尝试过,但似乎是可能的。
我还可以添加一个并行构建管道——如果我们可以这样称呼它的话。这可能涉及使用 Vite、Turbo 或 Webpack 等工具。然而,这种方法可能会使构建过程复杂化,并可能减慢 Hugo 的主要构建机制。这些集成已用于合并 Tailwind 和其他前端库。有趣的是,如果您查看 Hugo 即将推出的功能,您会看到集成 Tailwind 和其他技术的计划。
基于 Vercel 构建
我使用了一些第三方 Hugo 工具,特别是 HugoMods。图标模块引起了我的注意,因为我想向我的网站添加图标而不导入整个字体。搜索时,首先出现的是图标模块。它提供了各种图标供应商,包括 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 二进制文件。我向Claude和GPT寻求帮助,希望能够快速解决问题,但他们无法提供直接帮助。我必须引导他们完成每一步,最终,我对他们帮助我的能力失去了希望。
如果不是因为 Vercel 输入字段的限制,我什至使用 Claude 来实现几乎成功的解决方案。
什么有效?
我在 Vercel 仪表板中导航至我的网站的设置页面。在“环境变量”选项卡中,我添加了一个名为“HUGO_VERSION”的变量,并将其值设置为最新可用的 Hugo 版本。
在“常规”选项卡中,选择 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
注意:我使用的是 Go 版本 1.22.2,这是撰写本文时的最新版本。您可以修改版本以满足您的具体要求。
为什么要构建命令?
我理解你的怀疑。和你一样,我认为我有一个聪明的解决方案。最初,我尝试在 Install Command 字段中安装 Go,但惨败。尽管我进行了详尽的故障排除,但 Vercel 的构建过程仍无法找到二进制文件。
在探索了无数潜在的解决方案但没有成功之后,我偶然发现了一个 GitHub 问题,其中有人将整个安装过程直接放在构建字段中。照着他们的方法,我终于获得了成功。至此,解决方案就说明了一切。
尝试将这些步骤放入安装命令字段中可能会导致错误。
或者这个
安装 Amazon Linux Extras 并不能解决 Go 安装难题。通过此方法可用的 Go 版本明显过时。我彻底测试了这种方法并遇到了一致的失败。我尝试在安装命令中同时使用 yum 和 dnf 包管理器,但这两种方法都未能成功解决 Go 二进制问题。
最后,我在不同的平台上分享了这篇文章,以测试哪个平台在搜索结果中排名第一。几个月前我就愿意这样做。但是,我找不到合适的帖子。您可以从这里开始进行实验。
以上是如何在 Vercel 中托管 Hugo的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Golang在性能和可扩展性方面优于Python。1)Golang的编译型特性和高效并发模型使其在高并发场景下表现出色。2)Python作为解释型语言,执行速度较慢,但通过工具如Cython可优化性能。

Golang在并发性上优于C ,而C 在原始速度上优于Golang。1)Golang通过goroutine和channel实现高效并发,适合处理大量并发任务。2)C 通过编译器优化和标准库,提供接近硬件的高性能,适合需要极致优化的应用。

goisidealforbeginnersandsubableforforcloudnetworkservicesduetoitssimplicity,效率和concurrencyFeatures.1)installgromtheofficialwebsitealwebsiteandverifywith'.2)

Golang适合快速开发和并发场景,C 适用于需要极致性能和低级控制的场景。1)Golang通过垃圾回收和并发机制提升性能,适合高并发Web服务开发。2)C 通过手动内存管理和编译器优化达到极致性能,适用于嵌入式系统开发。

GoimpactsdevelopmentPositationalityThroughSpeed,效率和模拟性。1)速度:gocompilesquicklyandrunseff,ifealforlargeprojects.2)效率:效率:ITScomprehenSevestAndArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdArdEcceSteral Depentencies,增强开发的简单性:3)SimpleflovelmentIcties:3)简单性。

C 更适合需要直接控制硬件资源和高性能优化的场景,而Golang更适合需要快速开发和高并发处理的场景。1.C 的优势在于其接近硬件的特性和高度的优化能力,适合游戏开发等高性能需求。2.Golang的优势在于其简洁的语法和天然的并发支持,适合高并发服务开发。

Golang和Python各有优势:Golang适合高性能和并发编程,Python适用于数据科学和Web开发。 Golang以其并发模型和高效性能着称,Python则以简洁语法和丰富库生态系统着称。

Golang和C 在性能上的差异主要体现在内存管理、编译优化和运行时效率等方面。1)Golang的垃圾回收机制方便但可能影响性能,2)C 的手动内存管理和编译器优化在递归计算中表现更为高效。
