GitHub Pages是一个流行的静态网站托管选项。可以在 <your-repo> > Settings > Pages 中配置GitHub Pages。
GitHub Pages提供了一些构建选项:
我们希望选择“GitHub Actions”,以便我们可以控制构建脚本,并确保它也在构建TinaCMS管理界面。
通过点击为我们创建的操作上的“Configure”,我们可以调整构建脚本以便与我们的网站一起构建tinacms。
在你的网站构建步骤之前添加以下步骤:
如果你使用npm作为包管理器,可以使用以下内容:
- name: Build TinaCMSenv:TINA_PUBLIC_CLIENT_ID: ${{ secrets.TINA_PUBLIC_CLIENT_ID }}TINA_TOKEN: ${{ secrets.TINA_TOKEN }}run: npx tinacms build
或者如果你使用yarn:
- name: Build TinaCMSenv:TINA_PUBLIC_CLIENT_ID: ${{ secrets.TINA_PUBLIC_CLIENT_ID }}TINA_TOKEN: ${{ secrets.TINA_TOKEN }}run: yarn build# 这假设你的 "build" 脚本在你的# package.json 中是 "tinacms build"
你的GitHub Action将看起来像这样:
此错误可能由以下原因导致:
确保tinacms
和@tinacms/cli
依赖项都列在你的package.json中。
如果你使用npm,确保在TinaCMS构建命令之前运行npm ci
。如果你使用yarn,确保在运行构建命令之前运行yarn install --frozen-lockfile
。
如果你的CI运行类似yarn tinacms build
而不是npx tinacms build
,你需要在你的package.json中添加一个自定义脚本:
"scripts": {"tinacms": "tinacms",// ...
这可能由多种原因导致,但以下是最常见的原因和解决方法:
如果你的网站使用GitHub Pages进行部署,可能会使用GitHub的默认构建步骤。在这种情况下,TinaCMS不会包含在构建中。
要解决此问题,你需要选择“GitHub Actions”源,并与网站一起构建tinacms管理界面。你可以查看我们上面的文档以获取设置此GitHub Action的帮助。
检查以确保构建命令正在运行且未失败
注意:如果你使用的是hugo的github pages设置,你需要确保在你的仓库根目录中存在一个package-lock.json
。
这通常是由于GitHub Pages缺少入口文件。
要解决此问题,你需要在./pages
目录中创建一个名为index.tsx
的文件。你的index.tsx
应该看起来像这样:
import Filename, { getStaticProps as FilenameStaticProps } from './[filename]';const Index = Filename;export const getStaticProps = async ({ params }) => {return FilenameStaticProps({ params: { filename: 'home' } });}export default Index;
假设你的Tina clientID
和token
已设置为环境变量,你需要将这些添加到项目的GitHub Secrets中。我们在上面的代码片段中使用的秘密是TINA_PUBLIC_CLIENT_ID
和TINA_TOKEN
。