命令行界面
Strapi 带有功能齐全的命令行界面 (CLI),可让您在几秒钟内搭建和管理项目。CLI 可与 yarn
和 npm
包管理器配合使用。
诸如 strapi admin:create-user
之类的交互式命令不会显示 npm
的提示。预计 2023 年 3 月将修复 npm
包管理器。在此期间,请考虑使用 yarn
包管理器。
建议仅在本地安装 Strapi,这需要在以下所有 strapi
命令前加上用于项目设置的包管理器(例如 npm run strapi help
或 yarn strapi help
)或专用节点包执行器(例如 npx strapi help
)。
要使用 npm
传递选项,请使用语法:npm run strapi <command> -- --<option>
。
要使用 yarn
传递选项,请使用语法:yarn run strapi <command> --<option>
创建一个新项目。
strapi new <name>
options: [--no-run|--use-npm|--debug|--quickstart|--dbclient=<dbclient> --dbhost=<dbhost> --dbport=<dbport> --dbname=<dbname> --dbusername=<dbusername> --dbpassword=<dbpassword> --dbssl=<dbssl> --dbauth=<dbauth> --dbforce]
- strapi new <name>
生成一个名为 <name> 的新项目,并通过 npm 注册表安装默认插件。 - strapi new <name> --debug
如果在数据库连接期间触发了错误消息,将显示完整的错误消息。 - strapi new <name> --quickstart
使用快速启动系统创建您的应用程序。 - strapi new <name> --quickstart --no-run
使用快速启动系统创建您的应用程序,创建后不要启动应用程序。 - strapi new <name> --dbclient=<dbclient> --dbhost=<dbhost> --dbport=<dbport> --dbname=<dbname> --dbusername=<dbusername> --dbpassword=<dbpassword> --dbssl=<dbssl> --dbauth=<dbauth> --dbforce
生成一个名为 <name> 的新项目,跳过交互式数据库配置并使用这些选项进行初始化。- <dbclient> can be
postgres
,mysql
. - --dbforce 如果提供的数据库不为空,则允许您覆盖内容。仅适用于
postgres
、mysql
,并且是可选的。
- <dbclient> can be
strapi develop
Alias: dev
启动启用了 autoReload 的 Strapi 应用程序。
Strapi 在运行时修改/创建文件,并需要在创建新文件时重新启动。为此,strapi evolve
添加了文件观察器并在必要时重新启动应用程序。
Strapi 还添加了中间件以支持管理面板的 HMR(热模块替换)。这允许您自定义管理面板,而无需重新启动应用程序或运行单独的服务器。这仅在您使用--watch-admin
命令时添加。
strapi develop
选项 | 类型 | 说明 | 默认 |
---|---|---|---|
--bundler | 字符串 | 指定要使用的捆绑器,可以是 webpack 或 vite x | webpack |
-d, --debug | - | 启用带有详细日志的调试模式 | false |
--ignore-prompts | - | 忽略所有提示 | false |
--open | - | 在浏览器中打开管理员 | true |
--polling | - | 监视网络目录中的文件更改 | false |
--silent | - | 不记录任何内容 | false |
--watch-admin | - | 监视管理面板中的热更改 | false |
--no-build | - | 已弃用 在启用 autoReload 的情况下启动应用程序并跳过管理面板构建过程 | - |
--browser | 字符串 | 已弃用 提供一个浏览器名称来代替默认名称 | - |
您永远不应使用此命令在生产环境中运行 Strapi 应用程序。
使用 vite
选项作为捆绑器被视为实验性的。
strapi start
在禁用 autoReload 的情况下启动 Strapi 应用程序。
此命令用于运行无需重新启动和文件写入的 Strapi 应用程序,主要用于生产环境。
某些功能(例如 Content-type Builder)在 strapi start
模式下被禁用,因为它们需要重新启动应用程序。start
命令可以在 环境变量 前面加上前缀,以自定义应用程序启动。
strapi build
构建您的管理面板。
strapi build
选项 | 类型 | 说明 | 默认 |
---|---|---|---|
--bundler | 字符串 | 指定您想要使用的捆绑器,可以是 webpack 或 vite | webpack |
-d, --debug | - | 启用带有详细日志的调试模式 | false |
--minify | - | 缩小输出 | true |
--no-optimization | - | 已弃用:改用 minify | - |
--silent | - | 不记录任何内容 | false |
--sourcemaps | - | 生成源映射 | false |
--stats | - | 将构建统计信息打印到控制台 | false |
使用 vite
选项作为捆绑器被视为实验性的。
strapi watch-admin
该命令已弃用,管理面板作为 develop
命令的一部分进行监视。
启动管理服务器。Strapi 应该已经使用 strapi evolve
运行。
strapi watch-admin
options: [--browser <name>]
strapi login
登录 Strapi Cloud(请参阅 Cloud CLI 文档)。
strapi logout
退出 Strapi Cloud(请参阅 Cloud CLI 文档)。
strapi deploy
部署到 Strapi Cloud(请参阅 Cloud CLI 文档)。
strapi export
导出您的项目数据。默认设置创建一个 .tar
文件,使用 gzip
压缩并使用 aes-128-ecb
加密。
strapi export
导出的文件将自动使用 export_YYYYMMDDHHMMSS
格式命名,其中包含当前日期和时间戳。或者,您可以使用 -f
或 --file
标志指定文件名。下表提供了所有可用选项作为命令行标志:
选项 | 类型 | 说明 |
---|---|---|
‑‑no‑encrypt | - | 禁用文件加密并禁用 key 选项。 |
‑‑no‑compress | - | 禁用文件压缩。 |
-k , --key | 字符串 | 将加密密钥作为 export 命令的一部分传递。--key 选项不能与 --no-encrypt 结合使用。 |
-f , --file | 字符串 | 指定导出文件名。不包括文件扩展名。 |
--exclude | 字符串 | 使用逗号分隔的数据类型排除数据。可用的类型有:content 、files 和 config 。 |
--only | 字符串 | 仅包含这些数据。可用的类型有:content 、files 和 config 。 |
-h , --help | - | 显示 strapi export 命令的帮助。 |
示例
# 使用默认选项和文件名 myData 导出数据,结果文件名为 myData.tar.gz.enc。
strapi export -f myData
# 导出数据但不加密。
strapi export --no-encrypt
strapi import
将数据导入 到您的项目中。导入的数据必须来自另一个 Strapi 应用程序。您必须传递 --file
选项来指定导入操作的文件名和位置。
strapi import
选项 | 类型 | 说明 |
---|---|---|
-k, --key | 字符串 | 在命令中提供加密密钥,而不是后续提示。 |
-f , --file | 字符串 | 要导入的数据的路径和文件名(带扩展名)。 |
-h , --help | - | 显示 strapi import 帮助命令。 |
示例
# 使用默认参数导入数据并传递加密密钥:
strapi import -f your-filepath-and-filename --key my-key
strapi transfer
在 2 个 Strapi 实例之间传输数据。此命令主要用于本地实例和远程实例或 2 个远程实例之间。 transfer
命令需要一个转移令牌,该令牌在目标实例管理面板中生成。有关创建转移令牌的详细文档,请参阅 用户指南。
目标 Strapi 实例应使用 start
命令而不是 develop
命令运行。
选项 | 说明 |
---|---|
--to [destinationURL] | 目标 Strapi 实例上 /admin 端点的完整 URL(例如 --to https://my-beautiful-strapi-website/admin ) |
--to-token [transferToken] | 远程 Strapi 目标的转移令牌 |
--from [sourceURL] | 要从中提取数据的远程 Strapi 实例的 /admin 端点的完整 URL(例如, --from https://my-beautiful-strapi-website/admin ) |
‑‑from‑token | 从 Strapi 源实例传输令牌。 |
--force | 自动对所有提示(包括潜在的破坏性请求)回答“是”,并以非交互方式运行。 |
--exclude | 使用逗号分隔的数据类型排除数据。可用的类型有:content 、files 和 config 。 |
--only | 仅包含这些数据。可用的类型有:content 、files 和 config 。 |
-h 、--help | 显示 strapi transfer 的命令。 |
需要 --to
或 --from
,但目前不允许同时输入或不输入。
Example
strapi transfer --to http://example.com/admin --to-token my-transfer-token
strapi report
打印出对调试有用且报告问题时必需的调试信息。
选项 | 说明 |
---|---|
-u , --uuid | 包含项目 UUID |
-d , --dependencies | 包含项目依赖项 |
--all | 记录所有数据 |
示例
要在输出中包含项目 UUID 和依赖项:
strapi report --uuid --dependencies
要记录所有内容,请使用 --all
选项:
strapi report --all
strapi configuration:dump
别名: config:dump
将配置转储到文件或标准输出以帮助您迁移到生产环境。
转储格式将是 JSON 数组。
Options:
-f, --file <file> Output file, default output is stdout
-p, --pretty Format the output JSON with indentation and line breaks (default: false)
Examples
strapi configuration:dump -f dump.json
strapi config:dump --file dump.json
strapi config:dump > dump.json
所有这些示例都是等效的。
配置应用程序时,您经常输入第三方服务(例如身份验证提供程序)的凭据。请注意,这些凭据也将转储到此命令的输出中。 如有疑问,您应避免将转储文件提交到版本控制系统中。您可以探索以下一些方法:
- 将文件直接复制到所需的环境并在那里运行恢复命令。
- 将文件放在安全的位置,并在部署时使用正确的凭据下载。
- 在提交之前加密文件,并在运行恢复命令时解密文件。
strapi configuration:restore
别名:config:restore
将配置转储恢复到您的应用程序中。
输入格式必须是 JSON 数组。
strapi configuration:restore
Options:
-f, --file <file> Input file, default input is stdin
-s, --strategy <strategy> Strategy name, one of: "replace", "merge", "keep". Defaults to: "replace"
Examples
strapi configuration:restore -f dump.json
strapi config:restore --file dump.json -s replace
cat dump.json | strapi config:restore
strapi config:restore < dump.json
所有这些示例都是等效的。
策略
运行 restore 命令时,您可以从三种不同的策略中进行选择:
- replace:将创建丢失的密钥并替换现有的密钥。
- merge:将创建丢失的密钥并将现有密钥与其新值合并。
- keep:将创建丢失的密钥并保持现有密钥不变。
strapi admin:create-user
别名 admin:create
创建管理员。 管理员的名字、姓氏、电子邮件和密码可以:
- 作为选项传递
- 或者如果您在不传递任何选项的情况下调用命令,则可以交互设置。
示例
strapi admin:create-user --firstname=Kai --lastname=Doe --email=chef@strapi.io --password=Gourmet1234
选项
选项 | 类型 | 说明 | 必需 |
---|---|---|---|
-f, --firstname | 字符串 | 管理员的名字 | 是 |
-l, --lastname | 字符串 | 管理员的姓氏 | 否 |
-e, --email | 字符串 | 管理员的电子邮件 | 是 |
-p, --password | 字符串 | 管理员的新密码 | 否 |
-h, --help | 显示命令帮助 |
strapi admin:reset-user-password
别名 admin:reset-password
重置管理员用户的密码。 您可以将电子邮件和新密码作为选项传递,或者如果您在不传递选项的情况下调用命令,则可以交互方式设置它们。
示例
strapi admin:reset-user-password --email=chef@strapi.io --password=Gourmet1234
选项
选项 | 类型 | 描述 |
---|---|---|
-e, --email | 字符串 | 用户电子邮件 |
-p, --password | 字符串 | 用户的新密码 |
-h, --help | 显示命令帮助 |
strapi generate
运行完全交互式 CLI 来生成 API、控制器、内容类型、插件、策略、中间件 和 服务 以及 迁移。
strapi generate
strapi templates:generate
从当前 Strapi 项目创建一个模板。
strapi templates:generate <path>
- strapi templates:generate <path>
在<path>
处生成 Strapi 模板
示例:strapi templates:generate ../strapi-template-name
将把所需的文件和文件夹复制到 ../strapi-template-name
内的 template
目录
strapi ts:generate-types
为项目架构生成 TypeScript 类型。
strapi ts:generate-types
- strapi ts:generate-types --debug
已弃用 strapi ts:generate-types --verbose
在启用调试模式的情况下生成类型,显示生成的架构的详细表格。 - strapi ts:generate-types --silent 或 strapi ts:generate-types -s
在启用静默模式的情况下生成类型,完全删除终端中的所有日志。不能与verbose
或debug
结合使用 - strapi ts:generate-types --out-dir <path> 或 strapi ts:generate-types -o <path>
生成类型并指定将在其中创建文件的输出目录。
Strapi 要求在 types
目录中生成项目类型才能使其工作。大多数情况下不应使用 --out-dir
选项。但是,在更改内容结构后,生成第二个副本以比较现有类型和更新类型之间的差异等情况下,它很有用。
strapi routes:list
显示所有可用 routes 的列表。
strapi routes:list
strapi strategies:list
显示所有已注册 policies 的列表。
strapi strategies:list
strapi middlewares:list
显示所有已注册 middlewares 的列表。
strapi middlewares:list
strapi content-types:list
显示所有现有 content-types 的列表。
strapi content-types:list
strapi hooks:list
显示所有可用钩子的列表。
strapi hooks:list
strapi controllers:list
显示所有已注册的 控制器 的列表。
strapi controllers:list
strapi services:list
显示所有已注册的 服务 的列表。
strapi services:list
strapi install
在项目中安装插件。
strapi install <name>
- strapi install <name>
Installs a plugin called <name>.
Example:strapi install graphql
will install the plugin@strapi/plugin-graphql
Some plugins have admin panel integrations, your admin panel might have to be rebuilt. This can take some time.
strapi uninstall
从项目中卸载插件。
strapi uninstall <name>
options [--delete-files]
- strapi uninstall <name>
卸载名为 <name> 的插件。
示例:strapi uninstall graphql
将删除插件 @strapi/plugin-graphql
- strapi uninstall <name> --delete-files
卸载名为 <name> 的插件并删除./extensions/name/
中的文件
示例:strapi uninstall graphql --delete-files
将删除插件 @strapi/plugin-graphql
和 ./extensions/graphql
中的所有文件
- 除了
uninstall
命令之外,您还需要从./config/plugins.js
中删除插件配置。 - 某些插件具有管理面板集成,您的管理面板可能需要重建。这可能需要一些时间。
strapi telemetry:disable
禁用项目的数据收集(请参阅使用信息)。
strapi telemetry:disable
strapi telemetry:enable
禁用项目的数据收集后重新启用(请参阅使用信息)。
strapi telemetry:enable
strapi console
实时启动应用程序中的服务器和 eval 命令。
strapi console
strapi version
打印当前全局安装的 Strapi 版本。
strapi version
strapi help
列出 CLI 命令。
strapi help