- 原文链接 Picking a back-end for GatsbyJS
- 作者 Ross Whitehouse
不久之前,我又心血来潮想要把我的作品集站点重做一遍(大概六个月就会有这么一次),这回,我打定主意要学着用一用Gastby。但是事情好像还没这么简单。使用Gastby完成前端部分后,你打算怎么处理后端呢?看看这篇文章吧,现在我们有非常多的选择!
背景:为什么要用Gatsby?
要说还有什么东西的选择是比无头内容管理系统(Headless Content Management System, Headless CMS)的可选项更多的,那就只有静态站点生成器(Static Site Generator, SSG)了。我们可以用Hugo(基于Golang),Jekyll(基于Ruby),甚至是Nuxt(基于VueJS)。在茫茫的SSG中,我为什么选中了Gastby?原因很多,但最主要还是因为我是一个职业的React.js开发者,所以使用一个基于React的SSG真的很爽。
Gastby把自己形容为一个“超级迅捷的React静态站点生成器”(Blazing-fast static site generator for React)。所以,我可以在建站的同时,用上一些React的技能,听起来很不错?与此同时,我也一直在寻找业余项目和帮别人建站的活,所以如果我可以用一套JAM技术栈(JAMstack)更快、更容易地解决原来用Wordpress技术栈做的工作,那是不是完全无法拒绝了?那么就这样向前吧!但在此之前,我得先拿我自己的站点来练练手。
什么栈?JAM指的是JavaScript,API以及Markup(文本标记)。JAM有很多优势,但其中我最感兴趣的是CMS与站点的分离。再也不需要为了一个小小的博客动用WordPress的全家桶了。如果想要对JAM栈有更多了解,可以看这里。
我觉得发现Gastby真是捡到宝了。他们的网站上有很多安装配置的教程,你可以自己看看代码,真的很简单!我个人推荐Scott Tolinski的教学视频。Gastby以一个优雅的目录结构,把React,React Router,webkit,ES6,Sass支持都囊括其中,以及,最为关键的:GraphQL。
什么QL?GraphQL是针对API的查询语言。在WordPress时代,我想要显示文章标题,必须得把整篇文章都抓取下来,但是用上GraphQL,我可以告诉API:我只是想要文章的标题。可以看看GraphQL的官网,很方便的。
学习之后,我非常快地搭起了整个站点。数不清的教程和指导资料都触手可及。你可以用上很多React的奇技淫巧(如果你愿意),也可以几乎完全避开与React的正面接触(如果你想要)。还有多如牛毛的各种插件。并且,它们的数量只会与日俱增!
不管你是有React的使用经验,还是刚刚上路,Gatsby都是你的绝佳选择。Gastby不会告诉你你的代码必须长成什么样。事实上,Gastby让你可以用Markdown文件来写你的页面。比你想象的更加简单!不过我对此并不在意,也没有使用。出于相似的理由,如果我以后给别人做网站,我也不会用这个功能。我可不想花上几个月来教他们如何使用Markdown,克隆Git仓库,把新的文章加入仓库。所以,我的选择是Headless CMS。
你建好了你的站点。你写好了你的Sass。你搞定了你的Markdown文件(或者像我一样没用他们)。但现在你的站点还是一片空白!该怎么办?如何填充内容呢?
下一步:后端
现在我们需要寻找一个内容管理和发布系统。它要有一套漂亮的API(不然怎么配得上GraphQL呢)。这时候你会发现已经有一打这样的工具了。还好Gatsby已经帮我们做好了准备工作,你可以找到一系列针对不同Headless CMS的插件,其中包括WordPress API,Contentful,Prismic和NetlifyCMS——事实上,Gatsby还为使用NetlifyCMS写了一份指南。接下来,我会带着大家浏览一下其中的一些,让我们一起来看看到底哪一个最适合于这个小项目,然后开始使用它。
在写了这篇文章后,我听说GraphCMS最近势头不错。它生来就是为GraphQL服务的,并且开发者提供了一个Gatsby脚手架,值得一试。
在开始之前,首先想一下为什么我们希望在这个项目中使用JAMstack和Headless CMS。有一些是大众化的原因,而还有一些则是个人喜好:
- 上手简单!
- 不需要写后端代码。我是一个前端开发者,老实说我不想花上几个小时去写"讨厌"的PHP。拜托,饶了我吧。
- 不需要服务器。使用云CMS意味着我不需要再花钱去配置一个SQL数据库。
- 编辑方便。如果我需要很紧急地编辑某个站点的内容,或者我的一个客户有这样的需求,他们完全不需要改动任何代码。你可不想为了改动一个拼写错误专门启动家里的工作站吧!他们可以从任何地方进行改动。
Contentful
在我的调研过程中,Contentful是我见到次数最多的一个名字。Contentful已经是一家知名的大公司了,有超过13万开发者在使用他们的服务(如果他们的官网所言非虚的话)。我也很喜欢他们的描述。“迅速。灵活。未来的可靠保证。带给你你现在的CMS所没有的一切”。说得更直白一点,就是“我的CMS比你的CMS不知道高到哪里去了。”
然而,和所有这一切宣言相伴而来的,是可想而知的高价。诚然,Contentful也可以免费使用,不过你得接受他们在你的页尾显示他们的logo,最多只能存储1万条记录,并且只支持3个用户——这其实还可以了。
(未完待续)
有疑问加站长微信联系(非本文作者)