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 and minimizing the assets - strapi build --no-optimization
Builds the administration panel without minimizing 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 console
Start the server and let you eval commands into your application in real time.
strapi console
strapi version
Print the current globally installed Strapi version.
strapi version
strapi help
List CLI commands.
strapi help