模版 Templates

快速创建专为特定用例设计的预制 Strapi 应用程序。它允许您快速启动自定义 Strapi 应用程序。

模板是针对特定用例设计的预制 Strapi 配置。它们允许引导自定义 Strapi 应用程序。模板可以配置 集合类型和单一类型组件动态区域插件

模板与 Starters
  • 模板只有在通过 CLI 应用于默认 Strapi 应用程序时才有用。它不是一个配置的应用程序,无法单独运行,因为它缺少许多文件(例如数据库配置、package.json 等)。
  • starter 是一个使用 Strapi API 的预制前端应用程序。

使用模板

要基于模板创建新的 Strapi 项目,请运行以下命令:

sh
sh
yarn create strapi-app my-project --template <template-package>

npm 用于安装模板包,因此 <template-package> 可以匹配 npm install 支持的 任何格式。这包括 npm 包、作用域包、具有精确版本或标签的包以及用于开发的本地目录。

为方便起见,官方 Strapi 模板也有简写,可以从模板 npm 包名称中省略 @strapi/template- 前缀:

sh
# 使用完整模板名称
yarn create strapi-app my-project --template @strapi/template-blog

# 使用简写
yarn create strapi-app my-project --template blog

--template 选项可以与所有其他 create-strapi-app 选项(例如 --quickstart--no-run)结合使用。

创建模板

模板由自定义的 Strapi 应用程序生成并发布到 npm 包注册表。在创建模板之前,请确保您有一个符合您的用例的 Strapi 应用程序,并且您已阅读 模板要求

要求

创建模板时请牢记以下要求:

  • 模板不应处理特定于环境的配置(例如数据库或上传和电子邮件提供商)。这可以使模板保持可维护性并避免与其他 CLI 选项(例如 --quickstart)发生冲突。
  • 模板必须遵循特定的文件结构,在存储库的根目录中包含以下内容:
  • template 目录
  • package.json 文件
  • template.json 文件

此结构可以手动创建,也可以使用 strapi templates:generate 命令 自动生成:

sh
yarn
sh
yarn strapi templates:generate [path]

存储库根目录可以包含所需的任何其他文件或目录,但必须至少包含 template 目录、package.json 文件和 template.json 文件。

template 目录

template 目录用于扩展 Strapi 项目的文件内容,并且应仅包含将覆盖默认 Strapi 应用程序的文件。

template 目录中仅允许包含以下内容:

  • README.md:使用此模板制作的应用程序的自述文件
  • .env.example 用于指定所需的环境变量
  • src/
  • data/ 用于存储种子脚本导入的数据
  • public/ 用于提供文件
  • scripts/ 用于自定义脚本

如果发现任何意外文件或目录,安装将崩溃。

template.json 文件

template.json 用于扩展 Strapi 应用程序的默认 package.json。所有覆盖默认“package.json”的属性都应包含在根“package”属性中:

./template.json
json
{
  "package": {
    "dependencies": {
      "@strapi/plugin-graphql": "^4.0.0"
    },
    "scripts": {
      "custom": "node ./scripts/custom.js"
    }
  }
}

打包和发布

考虑到上述要求,请按照以下步骤创建和发布模板:

  1. 使用 create-strapi-app 创建标准 Strapi 应用程序,使用 --quickstart 选项。
  2. 自定义您的应用程序以满足您的用例需求。
  3. 通过运行 strapi templates:generate <path>,使用 CLI 生成模板
  4. 导航到此路径以查看生成的模板。
  5. 如果您修改了应用程序的 package.json,请在 template.jsonpackage 属性中包含这些更改(并且仅包含这些更改)。如果没有,请将其保留为空对象。
  6. 输入 npm publish 以使您的模板在 npm 包注册表中可用。
模板列表

Strapi 维护的 模板和 community 维护的 模板可在 GitHub 上找到。