命令行界面 CLI (Command Line Interface)

Strapi 带有功能齐全的命令行界面 (CLI),可让您在几秒钟内搭建和管理您的项目。

命令行界面

Strapi 带有功能齐全的命令行界面 (CLI),可让您在几秒钟内搭建和管理项目。CLI 可与 yarnnpm 包管理器配合使用。

诸如 strapi admin:create-user 之类的交互式命令不会显示 npm 的提示。预计 2023 年 3 月将修复 npm 包管理器。在此期间,请考虑使用 yarn 包管理器。

建议仅在本地安装 Strapi,这需要在以下所有 strapi 命令前加上用于项目设置的包管理器(例如 npm run strapi helpyarn strapi help)或专用节点包执行器(例如 npx strapi help)。

要使用 npm 传递选项,请使用语法:npm run strapi <command> -- --<option>

要使用 yarn 传递选项,请使用语法:yarn run strapi <command> --<option>

创建一个新项目。

bash
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 如果提供的数据库不为空,则允许您覆盖内容。仅适用于 postgresmysql,并且是可选的。

strapi develop

Alias: dev

启动启用了 autoReload 的 Strapi 应用程序。

Strapi 在运行时修改/创建文件,并需要在创建新文件时重新启动。为此,strapi evolve添加了文件观察器并在必要时重新启动应用程序。

Strapi 还添加了中间件以支持管理面板的 HMR(热模块替换)。这允许您自定义管理面板,而无需重新启动应用程序或运行单独的服务器。这仅在您使用--watch-admin命令时添加。

bash
strapi develop
选项类型说明默认
--bundler字符串指定要使用的捆绑器,可以是 webpackvitexwebpack
-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

构建您的管理面板。

bash
strapi build
选项类型说明默认
--bundler字符串指定您想要使用的捆绑器,可以是 webpackvitewebpack
-d, --debug-启用带有详细日志的调试模式false
--minify-缩小输出true
--no-optimization-已弃用:改用 minify-
--silent-不记录任何内容false
--sourcemaps-生成源映射false
--stats-将构建统计信息打印到控制台false

使用 vite 选项作为捆绑器被视为实验性的。

strapi watch-admin

该命令已弃用,管理面板作为 develop 命令的一部分进行监视。

启动管理服务器。Strapi 应该已经使用 strapi evolve 运行。

sh
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 加密。

bash
strapi export

导出的文件将自动使用 export_YYYYMMDDHHMMSS 格式命名,其中包含当前日期和时间戳。或者,您可以使用 -f--file 标志指定文件名。下表提供了所有可用选项作为命令行标志:

选项类型说明
‑‑no‑encrypt-禁用文件加密并禁用 key 选项。
‑‑no‑compress-禁用文件压缩。
-k,
--key
字符串将加密密钥作为 export 命令的一部分传递。
--key 选项不能与 --no-encrypt 结合使用。
-f,
--file
字符串指定导出文件名。不包括文件扩展名。
--exclude字符串使用逗号分隔的数据类型排除数据。可用的类型有:contentfilesconfig
--only字符串仅包含这些数据。可用的类型有:contentfilesconfig
-h,
--help
-显示 strapi export 命令的帮助。

示例

strapi export 示例:
bash
# 使用默认选项和文件名 myData 导出数据,结果文件名为 myData.tar.gz.enc。
strapi export -f myData

# 导出数据但不加密。
strapi export --no-encrypt

strapi import

将数据导入 到您的项目中。导入的数据必须来自另一个 Strapi 应用程序。您必须传递 --file 选项来指定导入操作的文件名和位置。

bash
strapi import
选项类型说明
-k, --key字符串在命令中提供加密密钥,而不是后续提示。
-f, --file字符串要导入的数据的路径和文件名(带扩展名)。
-h, --help-显示 strapi import 帮助命令。

示例

strapi import 示例:
bash

# 使用默认参数导入数据并传递加密密钥:
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使用逗号分隔的数据类型排除数据。可用的类型有:contentfilesconfig
--only仅包含这些数据。可用的类型有:contentfilesconfig
-h--help显示 strapi transfer 的命令。

需要 --to--from,但目前不允许同时输入或不输入。

Example

bash
strapi transfer --to http://example.com/admin --to-token my-transfer-token

strapi report

打印出对调试有用且报告问题时必需的调试信息。

选项说明
-u, --uuid包含项目 UUID
-d, --dependencies包含项目依赖项
--all记录所有数据

示例

要在输出中包含项目 UUID 和依赖项:

bash
strapi report --uuid --dependencies

要记录所有内容,请使用 --all 选项:

bash
strapi report --all

strapi configuration:dump

别名: config:dump

将配置转储到文件或标准输出以帮助您迁移到生产环境。

转储格式将是 JSON 数组。

strapi configuration:dump
bash
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 数组。

bash
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

创建管理员。 管理员的名字、姓氏、电子邮件和密码可以:

  • 作为选项传递
  • 或者如果您在不传递任何选项的情况下调用命令,则可以交互设置。

示例

bash

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

重置管理员用户的密码。 您可以将电子邮件和新密码作为选项传递,或者如果您在不传递选项的情况下调用命令,则可以交互方式设置它们。

示例

bash

strapi admin:reset-user-password --email=chef@strapi.io --password=Gourmet1234

选项

选项类型描述
-e, --email字符串用户电子邮件
-p, --password字符串用户的新密码
-h, --help显示命令帮助

strapi generate

运行完全交互式 CLI 来生成 API、控制器内容类型插件策略中间件服务 以及 迁移

bash
strapi generate

strapi templates:generate

从当前 Strapi 项目创建一个模板。

bash
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 类型。

bash
strapi ts:generate-types
  • strapi ts:generate-types --debug
    已弃用 strapi ts:generate-types --verbose
    在启用调试模式的情况下生成类型,显示生成的架构的详细表格。
  • strapi ts:generate-types --silentstrapi ts:generate-types -s
    在启用静默模式的情况下生成类型,完全删除终端中的所有日志。不能与 verbosedebug 结合使用
  • strapi ts:generate-types --out-dir <path>strapi ts:generate-types -o <path>
    生成类型并指定将在其中创建文件的输出目录。

Strapi 要求在 types 目录中生成项目类型才能使其工作。大多数情况下不应使用 --out-dir 选项。但是,在更改内容结构后,生成第二个副本以比较现有类型和更新类型之间的差异等情况下,它很有用。

strapi routes:list

显示所有可用 routes 的列表。

bash
strapi routes:list

strapi strategies:list

显示所有已注册 policies 的列表。

bash
strapi strategies:list

strapi middlewares:list

显示所有已注册 middlewares 的列表。

bash
strapi middlewares:list

strapi content-types:list

显示所有现有 content-types 的列表。

bash
strapi content-types:list

strapi hooks:list

显示所有可用钩子的列表。

bash
strapi hooks:list

strapi controllers:list

显示所有已注册的 控制器 的列表。

bash
strapi controllers:list

strapi services:list

显示所有已注册的 服务 的列表。

bash
strapi services:list

strapi install

在项目中安装插件。

console
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

从项目中卸载插件。

bash
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

禁用项目的数据收集(请参阅使用信息)。

bash
strapi telemetry:disable

strapi telemetry:enable

禁用项目的数据收集后重新启用(请参阅使用信息)。

bash
strapi telemetry:enable

strapi console

实时启动应用程序中的服务器和 eval 命令。

bash
strapi console

strapi version

打印当前全局安装的 Strapi 版本。

bash
strapi version

strapi help

列出 CLI 命令。

bash
strapi help