关于 contentful-nextjs
面向将 Contentful 集成到现有 Next.js 应用的开发者,涵盖内容读取、预览和环境配置,并区分 App Router 与 Pages Router。
主要功能
- 01支持 App Router 和 Pages Router
- 02配置 Contentful SDK 与环境变量
- 03获取已发布内容
- 04使用 Draft Mode 预览草稿
- 05支持环境别名配置
适用场景
- 01为 Next.js 页面读取 Contentful 内容
- 02设置预览令牌和 Draft Mode
- 03按项目路由结构配置客户端
MCP 相关
提及 Contentful MCP 服务可辅助 Agent 在设置期间与 Contentful 交互;它是补充,不能替代应用端客户端配置。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ contentful/ skills --skill contentful-nextjs安装后在 Claude Code 中输入/contentful-nextjs确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
package.jsonreferences/nextjs-setup.mdpreview-and-draft-mode.mdtroubleshooting.md详细介绍
Contentful Next.js
使用此技能将 Contentful 集成到现有的 Next.js 应用中。
Contentful 是一个无头、API 优先的 CMS(可组合内容平台),让 Next.js 应用能够通过内容交付和预览 API 获取结构化内容。
范围
- Next.js App Router 和 Pages Router。
- 已发布内容交付(CDA)。
- 使用 Draft Mode 交付预览内容(CPA)。
- 环境变量和客户端设置模式。
- 支持环境别名的设置方式,适用于稳定的部署路径。
不在范围内
- 个性化/优化实现。
- Studio Experiences SDK 设置。
- 完整的内容模型策略设计。
Contentful MCP 说明
- 如果用户希望在设置过程中更轻松地通过 Agent 与 Contentful 交互,建议参考 Contentful MCP 服务文档:
https://www.contentful.com/developers/docs/tools/mcp-server/。 - 此技能专注于 Next.js 实现。MCP 指引可辅助设置,但不能替代应用端的客户端接线。
项目状态
echo "=== Contentful packages ===" && node -e "try{const p=require('./package.json');const d={...p.dependencies,...p.devDependencies};const c=Object.entries(d).filter(([k])=>k.includes('contentful'));console.log(c.length?c.map(([k,v])=>k+'@'+v).join('\n'):'(Contentful SDK not installed)')}catch{console.log('(no package.json)')}" 2>/dev/null
echo ""
echo "=== Contentful env vars ===" && grep -h CONTENTFUL .env.local .env 2>/dev/null | sed 's/=.*/=<set>/' || echo "(no Contentful env vars found in .env.local or .env)"
echo ""
echo "=== Router type ===" && ([ -d "app" ] && echo "App Router detected (app/ directory exists)" || ([ -d "pages" ] && echo "Pages Router detected (pages/ directory exists)" || echo "(could not detect router type)"))
工作流
- 需要针对特定版本提供指导时,在线查看最新的稳定版 Next.js 版本:
https://github.com/vercel/next.js/releases。 - 确认 Next.js 项目结构(App Router 还是 Pages Router)。
- 配置所需的环境变量。如果缺少这些变量,请先让用户将它们添加到
.env.local,并说明每个值的获取位置。 - 安装并初始化
contentfulSDK。 - 实现已发布内容的获取。
- 添加支持 Draft Mode 的预览行为。
- 通过最小化测试路由/页面和故障排查清单进行验证。
版本检查策略
- 不要凭记忆声称“最新 Next.js 版本”。
- 在建议升级、兼容性解决方法或特定版本修复之前,请先通过
https://github.com/vercel/next.js/releases进行验证。 - 除非用户明确要求提供 canary/RC 指引,否则默认采用最新的非预发布标签。
必需的环境变量
CONTENTFUL_SPACE_ID- 可在 Contentful URL(/spaces/<SPACE_ID>/...)或 Space settings -> API keys 中找到。CONTENTFUL_ACCESS_TOKEN- 来自 Space settings -> API keys 的 CDA 令牌。CONTENTFUL_PREVIEW_ACCESS_TOKEN(用于预览工作流)- 来自 Space settings -> API keys 的 CPA 令牌。
在 Contentful 中创建 API 密钥会提供此处所需的两个令牌:
- CDA 令牌 ->
CONTENTFUL_ACCESS_TOKEN - CPA 令牌 ->
CONTENTFUL_PREVIEW_ACCESS_TOKEN
默认设置
- 如果用户未指定路由器类型,默认提供 Next.js App Router 指引。
- 普通内容交付使用 CDA 主机。
- 启用 Draft Mode 时,使用
preview.contentful.com和预览令牌。 - 优先使用环境别名(例如
master)作为客户端的environment值,使运行时客户端与发布环境 ID 解耦。 - 将 Contentful 客户端的创建逻辑放在共享工具模块中。
参考资料
评论
支持 Markdown