模板是针对特定用例设计的预制 Strapi 配置。它们允许引导自定义 Strapi 应用程序。模板可以配置 集合类型和单一类型、组件 和 动态区域 和 插件。
- 模板只有在通过 CLI 应用于默认 Strapi 应用程序时才有用。它不是一个配置的应用程序,无法单独运行,因为它缺少许多文件(例如数据库配置、
package.json
等)。 - starter 是一个使用 Strapi API 的预制前端应用程序。
使用模板
要基于模板创建新的 Strapi 项目,请运行以下命令:
yarn create strapi-app my-project --template <template-package>
npm 用于安装模板包,因此 <template-package>
可以匹配 npm install
支持的 任何格式。这包括 npm 包、作用域包、具有精确版本或标签的包以及用于开发的本地目录。
为方便起见,官方 Strapi 模板也有简写,可以从模板 npm 包名称中省略 @strapi/template-
前缀:
# 使用完整模板名称
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
命令 自动生成:
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”属性中:
{
"package": {
"dependencies": {
"@strapi/plugin-graphql": "^4.0.0"
},
"scripts": {
"custom": "node ./scripts/custom.js"
}
}
}
打包和发布
考虑到上述要求,请按照以下步骤创建和发布模板:
- 使用
create-strapi-app
创建标准 Strapi 应用程序,使用--quickstart
选项。 - 自定义您的应用程序以满足您的用例需求。
- 通过运行
strapi templates:generate <path>
,使用 CLI 生成模板 - 导航到此路径以查看生成的模板。
- 如果您修改了应用程序的
package.json
,请在template.json
的package
属性中包含这些更改(并且仅包含这些更改)。如果没有,请将其保留为空对象。 - 输入
npm publish
以使您的模板在 npm 包注册表中可用。
Strapi 维护的 模板和 community 维护的 模板可在 GitHub 上找到。