充分利用 Netlify
有些工具的入门非常简单,以至于很容易忽略它提供的所有功能。当一切都“开箱即用”时,就没有什么能促使你深入挖掘了。以Netlify为例。
我使用 Netlify 已经好几年了,主要用于我的线上聚会和培训网站Certified Fresh Events。最初的网站大约两年前上线,是用Hugo构建的(新上线的版本也是用 Hugo 构建的)。建站花了不少时间和精力,但部署到 Netlify 只用了 5 分钟。不过,除了偶尔用到他们的表单处理功能之外,我其实并没有用到 Netlify 的其他功能,除了持续部署。
然而,随着网站近期从零开始重新上线,我终于开始真正运用Netlify的强大功能了。在这篇文章中,我想探讨其中的一些特性。
注:是的,我确实对 Netlify 赞不绝口,所以特此声明,我并非 Netlify 的员工,也没有受邀撰写此文,更没有因此获得任何报酬。我真心喜欢这项服务,因为它多年来一直帮助我运营我的活动网站、博客等等。
环境变量
说实话,这很简单,但我之前没做什么特别的操作,所以唯一设置的环境变量就是 Hugo 版本。环境变量很适合存放一些你不想公开到代码仓库里的信息,比如 API 密钥。
定义环境变量有两种方法:一种是通过netlify.toml项目文件中的配置文件。如果您要将环境变量用于 API 密钥以外的其他用途,这种方法非常有用,因为它会将环境变量提交到代码仓库。另一种方法是在用户界面中设置。您可以通过“设置”>“构建和部署”>“环境”来设置特定于站点的环境变量。
分支部署
Netlify 提供了许多预览网站潜在变更的选项,从查看拉取请求或合并请求到预览分支,应有尽有。我从一开始就启用了这个功能,但从未真正使用过。不过,这次我要对网站进行重大改版,而使用分支显然是最佳选择。
默认情况下,拉取请求和分支部署的部署预览功能已启用,但您可以在“设置”>“构建和部署”>“持续部署”>“部署上下文”下找到相关设置。
这是什么意思呢?嗯,就我而言,我的分支名为“redesign”,因此它会自动部署到redesign.cfe.dev我的主域名。这不仅让我可以预览我的工作,甚至可以在正式发布之前公开分享,以便测试重新设计的效果。
Netlify 函数
JAMstack与静态网站的主要区别在于,JAMstack 拥有静态资源,但网站本身可以通过利用 JavaScript 和 API 实现动态功能。从 Netlify 的角度来看,关键在于函数。这些函数构建于 AWS 之上,本质上允许我编写服务器端代码块,从而使我的“静态网站”能够实现传统静态网站无法完成的功能。
我承认刚开始使用函数时确实遇到了一些困难。部分原因是,我找到的教程都依赖于netlify-lambda工具来开发函数。虽然这种方法可行,但由于涉及到构建过程,所以比较复杂;而使用Netlify Dev开发函数的新方法则要精简得多。(顺便提一下,Netlify Dev 的功能远不止于函数。)
我不会详细介绍我的做法,主要是因为我的好朋友雷蒙德·卡姆登已经写过了。我们针对这个问题采取了不同的方法,结果证明他的方法更好。我根据自己的使用场景做了一些调整,但核心功能保持不变——这是一个简单的函数,让我无需离开我的网站就能让用户订阅 Mailchimp。虽然这只是函数的一个有限应用,但我肯定会在网站的后续开发中更充分地利用这个功能。
调度部署
我想讨论的最后一个功能其实并非 Netlify 的内置功能。由于我的内容对日期非常敏感,我希望网站能够持续重建,以避免日期信息过时(例如,即将举行的活动可能会显示“12 天后”)。此外,首页的某些位置会随机显示一些项目,这些项目也是在构建时随机生成的,因此也需要重建。所以我需要确保网站能够定期自动重建,而无需我进行任何干预。
幸运的是,Netlify 已经预置了与Zapier 的集成。Zapier 不是免费的,但对于这类任务,你不太可能达到免费账户的限额。这是一个非常简单的两步“Zap”,它利用 Zapier 的 Schedule 功能,在每天午夜触发一次部署(实际上,从 Netlify 的角度来看,时间并不那么重要,因为构建是在后台进行的,但选择午夜是合理的,因为日期会发生变化,从而影响日期计算)。
刚刚起步
这篇文章更贴切的标题应该是“Netlify深度体验”,但除了语法错误之外,也不够吸引人。不过,从某种意义上说,这个标题更准确,因为Netlify还有很多功能我还没有完全利用——比如A/B测试、身份验证、大型媒体文件等等。但我终于探索到了构建和部署流程之外的更多功能,并且很期待继续学习。
文章来源:https://dev.to/remotesynth/using-netlify-to-the-fullest-3ef


