Vercel 和 Netlify 都是流行的平台,用于部署和托管 Jamstack 网站。它们连接到您的 git 存储库(两者都支持 GitHub、Gitlab 和 Bitbucket),并自动部署您推送到存储库的任何更改。它们还具有方便的功能,可以将站点回滚到早期版本,或在将更改发布到实时网站之前预览新更改。

vercel-netlify

Netlify和Vercel与Heroku等其他主机的主要区别在于,它们主要专注于无服务器部署静态站点。这两个术语值得一些解释:

1. 什么是静态网站?

使用传统网站时,当访问者请求页面时,服务器会执行一些工作,将相关代码和图像等资源组合成完成的页面,然后再将其发送给访问者。使用静态网站时,生成页面的工作在“构建时间”即开发人员对网站进行更改时完成。预先生成页面意味着它们可以在请求时立即发送给访问者,提高页面加载速度。

2. 什么是无服务器部署?

由于页面是在构建时提前生成的,因此我们不再需要服务器每次有人请求页面时执行该工作。这使我们可以使用称为边缘网络的东西。边缘网络可以在许多位置托管您的网站文件,并从物理上最接近访问者的位置提供服务。这对性能有很大帮助!不使用传统服务器对安全性也很有好处,因为攻击面减小了。使用Netlify或Vercel,您将不必担心服务器维护或安全性。

两个平台都是不错的选择,具有类似的功能和良好的声誉。在本文中,我们将重点关注它们的差异,以便您可以确定哪个平台更适合您的具体项目。

Netlify与Vercel免费计划比较

Netlify 免费版的一个重要优势是,他们不限制商业使用或商务。Vercel 不允许在免费版上进行商业使用或商务。虽然在免费计划上实施商务没有技术上的障碍,但如果 Vercel 发现,他们可能会决定关闭您的项目,因为这违反了他们的服务条款,因此如果您正在开展商业项目,最好升级到专业版或选择 Netlify。

Vercel 在免费计划中为您提供100GB的带宽、6000分钟的构建时间以及100GB小时的无服务器函数执行时间。

Netlify还提供100GB的带宽,但每月只有300分钟的构建时间和125k的无服务器函数执行次数。Netlify还提供每月100个表单提交和1,000个Netlify身份验证服务的活跃用户。这是一个很大的优势,因为Vercel没有提供这些服务。

Vercel免费提供更多的构建时间,但每月300分钟的构建时间仍然很多,因此它很可能不会有太大的区别。

Netlify与Vercel专业计划比较

Netlify和Vercel的专业计划非常相似。两者都提供高达1TB的带宽,并且每个用户每月的费用大约为20美元。然而,有趣的是,Netlify有一个更高的计划,每个成员每月99美元,还可以为您提供无限的表单提交、身份用户、大型媒体转换和分析。这些附加功能不是由Vercel提供的(除了分析),下面会详细介绍。

两个平台还提供企业级别,如果您正在运行一个流量很大的项目,可以联系他们的销售团队获取定制计划。

无服务器函数

有了前端处理好了,无服务器函数是为您的 Jamstack 网站添加后端功能的关键。某些事情,比如使用 Stripe API,需要使用后端,以避免将敏感 API 密钥暴露给公众。无服务器函数让您创建后端功能,而无需担心服务器维护或安全性。它们还可以自动扩展以满足需求。

无服务器函数在Netlify和Vercel上的工作方式类似,您可以在特定文件夹中编写函数,平台会自动检测并为您部署它们,同时与部署前端一起进行。这两个平台实际上都在后台使用AWS Lambda来运行函数,但它们使管理无服务器函数比您自己设置AWS帐户要容易得多。

使用Netlify,您可以使用Typescript、Javascript或Go编写这些函数。Vercel也支持这些语言,但还支持Python和Ruby。因此,如果您喜欢使用其中任何一种语言,并且希望在项目中使用无服务器函数,那么这可能会倾向于您使用Vercel。

Netlify和Vercel都将无服务器函数的最大执行时间设置为免费层的10秒,这对于大多数用途应该足够了。但是,如果您确实有需要更长时间的操作,Netlify提供了“后台函数”,可以异步运行长达15分钟。截至撰写本文,Vercel不提供后台函数,因此这值得注意。

附加组件、扩展和集成器

这是我认为Netlify是明显的赢家的一个领域。虽然两个平台都有扩展和集成,但Netlify为Jamstack开发人员需要的常见事物提供了许多附加服务。

这些附加组件允许您接收表单提交,处理用户身份验证,设置服务器端分析,运行分割测试和托管大型媒体文件。以下是目前可用的Netlify附加组件的简要介绍:

Netlify Forms使得在您的静态网站上接收表单提交变得非常容易。您只需要在网站上的表单中添加一个"netlify"属性,在部署期间它将自动被检测并设置为接收提交。这些提交可以从Netlify仪表板中查看,或者轻松配置为转发到电子邮件地址、Slack频道或Webhook。

Netlify Identity允许您轻松地将用户身份验证添加到静态站点中,可用于诸如有门槛的内容或网站管理等用途。

Netlify Analytics为您提供有关访问您的网站的人的一些基本信息,而无需添加任何客户端JavaScript。这意味着不会降低性能,并且不需要使用cookie通知!但是,它的功能相当有限,因此可能不足以替换您当前的分析工具。Vercel有一个类似的分析工具,在撰写本文时是免费的,但在离开测试版后将收费。

Netlify Large Media 允许您在Git存储库中管理诸如视频和图像之类的大型文件。如果您没有使用处理图像托管的CMS(例如Prismic或Sanity)或图像CDN(例如Cloudinary),则这可能是一个不错的选择。

Netlify Split Testing 是一个非常有用的功能,它可以让您在项目的两个不同分支上运行A/B测试。由于所有操作都在服务器端完成,因此不会带来任何性能损失,不像流行的替代方案Google Optimize,它会减慢页面加载速度,有时还会导致布局移位。

两个平台都有可选功能来优化您的网站,例如缩小资源和优化图像。

如果您考虑使用Netlify CMS,请注意一件事情,即尽管它可以与任何平台一起使用,但与Netlify一起使用有很大的优势。Netlify将允许您设置Git Gateway,这意味着您可以邀请内容编辑者使用CMS,而他们不需要GitHub帐户。许多使用CMS编辑网站内容的人没有GitHub帐户,因为他们不是开发人员,因此这是一个关键功能。

Next.js 项目适应性

Next.js是一个非常流行的React框架,用于开发Web应用程序甚至静态站点。如果您正在使用Next.js进行项目开发,考虑使用Vercel而不是Netlify将会非常有意义。由于Vercel团队开发了Next.js,您可以确信Vercel将始终支持所有Next.js功能。

Netlify仍然很好地托管Next.js项目,因此,如果您有其他原因想选择Netlify,我不会让这个原因阻止您。但是,其他一切都相等的情况下,我认为与专注于您的框架的公司保持一致是有意义的。

Cloudflare Pages和Gatsby Cloud

虽然Netlify和Vercel是部署和托管静态站点最流行的服务,但还有其他几个值得一提

Cloudflare Pages是一个较新的服务,但作为Cloudflare的服务,您知道可以信任它处理您可以投入的任何流量。它在功能方面有些欠缺,但如果您只需要托管静态站点并处理无服务器函数,则它可能与两个市场领导者一样适合您。 Cloudflare提供的一个好处是免费包含分析功能。Netlify分析需要额外费用,而Vercel的分析功能在离开beta版后将不免费

如果您正在使用 Gatsby,那么值得考虑一下 Gatsby Cloud。由于它专门针对 Gatsby 进行了优化,因此与使用其他服务相比,网站构建速度要快得多。

Vercel 和 Netlify 都是很棒的平台,在功能和开发体验方面非常相似,所以我不会犹豫使用它们中的任何一个。话虽如此,我通常更倾向于在大多数项目中使用 Netlify,因为它们的附加组件非常方便,并且免费版允许商业使用。如果我正在开发 Next.js 项目,我会更多地考虑使用 Vercel,因为我认为两者之间的集成更好一些。

成年人的选择当然是所有都要啦,免费的羊毛不薅白不薅,又能学知识,多好!如果有时间上面提到的几个可以都试试。