升级指南
将您的站点升级到使用 DrupalClient 的指南。
next-drupal 1.6.0
- 升级到最新版本
yarn add next-drupal@latest
next-drupal 1.6.0
添加了对 Next.js 13 和 React 18 的支持。要将您的站点更新到 Next.js 13,请参阅 Next.js 网站上的 从 12 升级到 13 指南。
next 1.6.0
- 将您的 Drupal 站点升级到使用
next 1.6.0
composer require drupal/next
- 运行更新
drush updb
运行更新将把旧版 next_extras
的按需重新验证配置迁移到实体类型配置。
next 1.3.0
- 将您的 Drupal 站点升级到使用
next 1.3.0
composer require drupal/next
- 运行更新
drush updb
编辑 Next.js 用户并**分配所有将用于作用域的角色,包括管理员角色和 Next.js 角色**。授予的角色将根据分配给当前用户的角色进行过滤。
将
next-drupal
包升级到1.5.0
。请参阅下面的升级指南。
next-drupal 1.5.0
- 升级到最新版本
yarn add next-drupal@latest
next-drupal 1.4.0
⚠️
DrupalClient
是一个可选功能。如果您正在运行使用 next-drupal 1.2 或更低版本
的站点,则可以安全地升级您的站点,而不会有任何重大更改。
- 升级到最新版本
yarn add next-drupal@latest
- 在
lib/drupal.ts
中创建一个新的DrupalClient
lib/drupal.ts
import { DrupalClient } from "next-drupal"
export const drupal = new DrupalClient( process.env.NEXT_PUBLIC_DRUPAL_BASE_URL, { frontPage: "/home", previewSecret: process.env.DRUPAL_PREVIEW_SECRET, auth: { clientId: process.env.DRUPAL_CLIENT_ID, clientSecret: process.env.DRUPAL_CLIENT_SECRET, }, })
默认情况下,DrupalClient
对 Drupal 发出的所有请求都是未经身份验证的。请参阅下面的步骤 5,了解如何为未经身份验证的调用配置权限。
要进行身份验证请求,您需要在 方法基础上选择加入。
如果您希望所有请求都经过身份验证,则可以在 DrupalClient
上使用 withAuth
选项。
import { DrupalClient } from "next-drupal"
export const drupal = new DrupalClient( process.env.NEXT_PUBLIC_DRUPAL_BASE_URL, { frontPage: "/home", previewSecret: process.env.DRUPAL_PREVIEW_SECRET, auth: { clientId: process.env.DRUPAL_CLIENT_ID, clientSecret: process.env.DRUPAL_CLIENT_SECRET, }, withAuth: true, })
- 更新助手以使用
drupal
客户端。
+ import { drupal } from "lib/drupal"
- await getPathsFromContext()+ await drupal.getStaticPathsFromContext()
- await translatePathFromContext()+ await drupal.translatePathFromContext()
- await getResourceFromContext()+ await drupal.getResourceFromContext()
- 将
pages/api/preview.ts
替换为以下内容
- import { DrupalPreview } from "next-drupal"-- export default DrupalPreview()+ import { drupal } from "lib/drupal"++ export default async function (request, response) {+ return await drupal.preview(request, response)+ }
在 Drupal 站点上,访问
/admin/people/permissions/anonymous
并将发出子请求权限分配给匿名用户角色。
我们这样做是因为在构建阶段,大多数页面请求都是匿名请求。通过分配此权限,您可以显着减少站点的构建时间。
如果您希望保留身份验证请求,则可以使用withAuth
选项。完成。您现在可以使用新的
DrupalClient
运行您的站点了。
如果您在升级过程中遇到任何错误,请随时在 GitHub 上创建问题。