如何用GraphCommerce和Next.js建立一个PWA(附代码)

159 阅读4分钟

GraphCommerce是一个React前端框架,允许开发者创建与Magento相连的电子商务店面。

通过结合Magento的电子商务功能和React的便利性,开发人员可以获得许多功能,如:

  • Next.js静态网站生成(又称SSG)能力
  • 由于Next-pwa的存在,支持PWA
  • Magento的电子商务功能,如购物车和结账
  • 从GraphCMS存储和获取内容的能力

在本教程中,你将学习如何用GraphCommerce创建一个电子商务商店。你将发现PWA的配置和支付方式的设置。最后,你将创建你自己的GraphCMS项目,并将其与GraphCommerce项目连接。你可以跳到这些步骤中的任何一个。

第1步:创建一个GraphCommerce项目

GraphCommerce的启动项目在GraphCommerce的GitHub资源库中的examples文件夹下。

要获得这个仓库,首先要克隆它:

git clone https://github.com/graphcommerce-org/graphcommerce.git

一旦完成,你应该有一个名为graphcommerce 的文件夹。为了获得演示项目,你应该在你的 GraphCommerce 项目旁边创建一个项目(不是在它里面,因为你将删除graphcommerce 文件夹)。

为了创建这个文件夹,运行以下命令:

mkdir pwa-graphcommerce

然后,将graphcommerce/examples/magento-graphcms/ 中的启动项目复制到你之前创建的文件夹中。你也可以删除graphcommerce 文件夹,因为你不再需要它了:

cp -R graphcommerce/examples/magento-graphcms/. pwa-graphcommerce && rm -rf graphcommerce

当你的新文件夹装满了所有必要的文件后,你可以在里面移动:

cd pwa-graphcommerce

在你的pwa-graphcommerce 文件夹中,你可以创建运行你的应用程序所需的.env 。你可以直接从提供给你的.env.example文件中复制它:

cp -R .env.example .env

你还应该删除你的项目中一些不必要的文件和文件夹。

rm CHANGELOG.md
rm -rf node_modules && rm -rf .next

第2步:启动你的GraphCommerce项目

一旦你完成了第1步,你就可以启动该应用程序了。要做到这一点,你应该安装所有的依赖项:

yarn

一旦安装了依赖项,你还需要根据你的GraphQL模式和查询文档来生成你的客户端代码。你可以通过运行命令来完成这个任务:

yarn codegen

最后,你可以启动你的开发服务器:

yarn dev

如果你访问http://localhost:3000,你应该看到这个。

GraphCommerce Homepage

下面是你启动GraphCommerce项目时需要注意的一些事情。

PWA支持

PWA的功能是通过库Next-pwa提供的。当你启动你的开发服务器时,你应该在服务器日志中看到这个。

[next] > [PWA] PWA support is disabled

你可以在你的next.config.js 中看到这个配置。在里面你应该看到。

const nextConfig = {
  ...
    pwa: {
      dest: 'public',
      disable: process.env.NODE_ENV === 'development',
  },
  ...
}

删除disable 行以在你的本地服务器上启用PWA支持。

支付方式

GraphCommerce 项目提供了两种支付方式供你使用:

  • Mollie
  • Braintree

如果你想删除其中一种,你需要先从你的package.json 中删除。

最后,前往你的pages/checkout/payment.tsx ,在这个文件中删除它们的引用。

(可选)创建一个GraphCMS项目

你的项目目前正在使用一个演示的Magento和GraphCMS。你可以通过在.env 文件中配置API密钥来改变这一点。在本节中,你将发现如何创建你自己的GraphCMS并将其与你的项目相连接。

首先,注册Hygraph并克隆默认的启动项目。要做到这一点,请到这个地址去克隆项目:https://app.hygraph.com/clone/caddaa93cfa9436a9e76ae9c0F34d257

Clone Project Page

一旦创建,你可以从你的项目设置(左侧导航中的齿轮),然后在API访问中获得必要的API端点。在这个页面,你会看到端点部分。从那里,你可以复制内容API端点

然后,前往你的.env 文件,用你的新网址替换GRAPHCMS_URL 演示网址。

你将不得不关闭你的服务器,并使用yarn codegen 重新生成文件。

一旦设置好了,你就可以改变你的内容并看到变化的反映。例如,进入内容>博客帖子。将你的一篇文章的标题改为Test

Blogposts Page

一旦你回到你的应用程序,你应该看到变化的反映。

Test Blog

总结

GraphCommerce是一个用React构建的前端框架。它的目的是为Magento 2开发者提供一个PWA。有了GraphCommerce,开发者可以快速而轻松地创建和定制他们的店面。

在本教程中,你学会了如何使用演示数据设置和启动GraphCommerce应用。然后,你发现了如何创建你自己的GraphCMS实例,并将其与你的GraphCommerce应用相连接。享受测试你的新应用吧。