如何在 Vercel 中托管 Hugo
来源:dev.to
时间:2024-12-02 22:43:07 467浏览 收藏
Golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《如何在 Vercel 中托管 Hugo》带大家来了解一下##content_title##,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发!
我决定和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》文章吧,也可关注golang学习网公众号了解相关技术文章。
-
505 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
187 收藏
-
154 收藏
-
170 收藏
-
461 收藏
-
111 收藏
-
132 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习