11 KiB
Command Line Interface (CLI)
Strapi comes with a full featured Command Line Interface (CLI) which lets you scaffold and manage your project in seconds.
strapi new
Create a new project.
strapi new <name>
options: [--debug|--quickstart|--dbclient=<dbclient> --dbhost=<dbhost> --dbport=<dbport> --dbname=<dbname> --dbusername=<dbusername> --dbpassword=<dbpassword> --dbssl=<dbssl> --dbauth=<dbauth> --dbforce]
-
strapi new <name>
Generates a new project called <name> and installs the default plugins through the npm registry. -
strapi new <name> --debug
Will display the full error message if one is fired during the database connection. -
strapi new <name> --quickstart
Use the quickstart system to create your app. -
strapi new <name> --dbclient=<dbclient> --dbhost=<dbhost> --dbport=<dbport> --dbname=<dbname> --dbusername=<dbusername> --dbpassword=<dbpassword> --dbssl=<dbssl> --dbauth=<dbauth> --dbforce
Generates a new project called <name> and skip the interactive database configuration and initialize with these options.
- <dbclient> can be
mongo
,postgres
,mysql
. - <dbssl> and <dbauth> are available only for
mongo
and are optional. - --dbforce Allows you to overwrite content if the provided database is not empty. Only available for
postgres
,mysql
, and is optional.
- <dbclient> can be
strapi develop|dev
Start a Strapi application with autoReload enabled.
Strapi modifies/creates files at runtime and needs to restart when new files are created. To achieve this, strapi develop
adds a file watcher and restarts the application when necessary.
strapi develop
options: [--no-build |--watch-admin ]
- strapi develop
Starts your application with the autoReload enabled - strapi develop --no-build
Starts your application with the autoReload enabled and skip the administration panel build process - strapi develop --watch-admin
Starts your application with the autoReload enabled and the front-end development server. It allows you to customize the administration panel.
::: tip You should never use this command to run a Strapi application in production. :::
strapi start
Start a Strapi application with autoReload disabled.
This commands is there to run a Strapi application without restarts and file writes (aimed at production usage).
Certain features are disabled in the strapi start
mode because they require application restarts.
::: tip
You can specify a NODE_ENV to use the configurations in the ./config/environments/[development|staging|production]
folder.
By default the development
environment will be used.
:::
strapi build
Builds your admin panel.
strapi build
options: [--no-optimization]
- strapi build
Builds the administration panel without minimizing the assets - strapi build --no-optimization
Builds the administration panel without minizing the assets. The build duration is faster.
::: tip
You can specify a NODE_ENV to use the configurations in the ./config/environments/[development|staging|production]
folder.
By default the development
environment will be used.
:::
strapi generate:api
Scaffold a complete API with its configurations, controller, model and service.
strapi generate:api <name> [<attribute:type>]
options: [--tpl <name>|--plugin <name>]
-
strapi generate:api <name>
Generates an API called <name> in the./api
folder at the root of your project. -
strapi generate:api <name> <attribute:type>
Generates an API called <name> in the./api
folder at the root of your project. The model will already contain an attribute called <attribute> with the type property set to <type>.Example:
strapi generate:api product name:string description:text price:integer
-
strapi generate:api <name> --plugin <plugin>
Generates an API called <name> in the./plugins/<plugin>
folder.Example:
strapi generate:api product --plugin content-manager
-
strapi generate:api <name> --tpl <template>
Generates an API called <name> in the./api
folder which works with the given <template>. By default, the generated APIs are based on Mongoose.Example:
strapi generate:api product --tpl bookshelf
::: tip The first letter of the filename will be uppercase. :::
strapi generate:controller
Create a new controller.
strapi generate:controller <name>
options: [--api <name>|--plugin <name>]
-
strapi generate:controller <name>
Generates an empty controller called <name> in the./api/<name>/controllers
folder.Example:
strapi generate:controller category
will create the controller at./api/category/controllers/Category.js
. -
strapi generate:controller <name> --api <api>
Generates an empty controller called <name> in the./api/<api>/controllers
folder.Example:
strapi generate:controller category --api product
will create the controller at./api/product/controllers/Category.js
. -
strapi generate:controller <name> --plugin <plugin>
Generates an empty controller called <name> in the./plugins/<plugin>/controllers
folder.
::: tip The first letter of the filename will be uppercase. :::
strapi generate:model
Create a new model.
strapi generate:model <name> [<attribute:type>]
options: [--api <name>|--plugin <name>]
-
strapi generate:model <name>
Generates an empty model called <name> in the./api/<name>/models
folder. It will create two files. The first one will be <name>.js which contains your lifecycle callbacks and another <name>.settings.json that will list your attributes and options.Example:
strapi generate:model category
will create these two files./api/category/models/Category.js
and./api/category/models/Category.settings.json
. -
strapi generate:model <name> <attribute:type>
Generates an empty model called <name> in the./api/<name>/models
folder. The file <name>.settings.json will already contain a list of attribute with their associated <type>.Example:
strapi generate:model category name:string description:text
will create these two files./api/category/models/Category.js
and./api/category/models/Category.settings.json
. This last file will contain two attributesname
with the typestring
anddescription
with typetext
. -
strapi generate:model <name> --api <api>
Generates an empty model called <name> in the./api/<api>/models
folder.Example:
strapi generate:model category --api product
will create these two files:./api/product/models/Category.js
./api/product/models/Category.settings.json
.
- strapi generate:model <name> --plugin <plugin>
Generates an empty model called <name> in the./plugins/<plugin>/models
folder.
::: tip The first letter of the filename will be uppercase. :::
strapi generate:service
Create a new service.
strapi generate:service <name>
options: [--api <name>|--plugin <name>]
-
strapi generate:service <name>
Generates an empty service called <name> in the./api/<name>/services
folder.Example:
strapi generate:service category
will create the service at./api/category/services/Category.js
. -
strapi generate:service <name> --api <api>
Generates an empty service called <name> in the./api/<api>/services
folder.Example:
strapi generate:service category --api product
will create the service at./api/product/services/Category.js
. -
strapi generate:service <name> --plugin <plugin>
Generates an empty service called <name> in the./plugins/<plugin>/services
folder.
::: tip The first letter of the filename will be uppercase. :::
strapi generate:policy
Create a new policy.
strapi generate:policy <name>
options: [--api <name>|--plugin <name>]
-
strapi generate:policy <name>
Generates an empty policy called <name> in the./config/policies
folder.Example:
strapi generate:policy isAuthenticated
will create the policy at./config/policies/isAuthenticated.js
. -
strapi generate:policy <name> --api <api>
Generates an empty policy called <name> in the./api/<api>/config/policies
folder. This policy will be scoped and only accessible by the <api> routes.Example:
strapi generate:policy isAuthenticated --api product
will create the policy at./api/product/config/policies/isAuthenticated.js
. -
strapi generate:policy <name> --plugin <plugin>
Generates an empty policy called <name> in the./plugins/<plugin>/config/policies
folder. This policy will be scoped and accessible only by the <plugin> routes.
strapi generate:plugin
Create a new plugin skeleton.
strapi generate:plugin <name>
-
strapi generate:plugin <name>
Generates an empty plugin called <name> in the./plugins
folder.Example:
strapi generate:plugin user
will create the plugin at./plugins/user
.
Please refer to the local plugins section to know more.
strapi install
Install a plugin in the project.
strapi install <name>
-
strapi install <name>
Installs a plugin called <name>.Example:
strapi install graphql
will install the pluginstrapi-plugin-graphql
::: warning Some plugins have admin panel integrations, your admin panel might have to be rebuilt. This can take some time. :::
strapi uninstall
Uninstall a plugin from the project.
strapi uninstall <name>
options [--delete-files]
-
strapi uninstall <name>
Uninstalls a plugin called <name>.Example:
strapi uninstall graphql
will remove the pluginstrapi-plugin-graphql
-
strapi uninstall <name> --delete-files
Uninstalls a plugin called <name> and removes the files in./extensions/name/
Example:
strapi uninstall graphql
will remove the pluginstrapi-plugin-graphql
and all the files in./extensions/graphql
::: warning Some plugins have admin panel integrations, your admin panel might have to be rebuilt. This can take some time. :::
strapi version
Print the current globally installed Strapi version.
strapi version
strapi help
List CLI commands.
strapi help