Plugins configuration
Plugin configurations are stored in /config/plugins.js|ts
(see project structure). Each plugin can be configured with the following available parameters:
Parameter | Description | Type |
---|---|---|
enabled | Enable (true ) or disable (false ) an installed plugin | Boolean |
config Optional | Used to override default plugin configuration (defined in strapi-server.js) | Object |
resolve Optional, only required for local plugins | Path to the plugin's folder | String |
Note
Some features of Strapi are provided by plugins and the following plugins can also have specific configuration options: GraphQL and Upload.
Basic example custom configuration for plugins:
- JavaScript
- TypeScript
./config/plugins.js
module.exports = ({ env }) => ({
// enable a plugin that doesn't require any configuration
i18n: true,
// enable a custom plugin
myplugin: {
// my-plugin is going to be the internal name used for this plugin
enabled: true,
resolve: './src/plugins/my-local-plugin',
config: {
// user plugin config goes here
},
},
// disable a plugin
'my-other-plugin': {
enabled: false, // plugin installed but disabled
},
});
./config/plugins.ts
export default ({ env }) => ({
// enable a plugin that doesn't require any configuration
i18n: true,
// enable a custom plugin
myplugin: {
// my-plugin is going to be the internal name used for this plugin
enabled: true,
resolve: './src/plugins/my-local-plugin',
config: {
// user plugin config goes here
},
},
// disable a plugin
'my-other-plugin': {
enabled: false, // plugin installed but disabled
},
});
Tip
If no specific configuration is required, a plugin can also be declared with the shorthand syntax 'plugin-name': true
.
GraphQL configuration
The GraphQL plugin has the following specific configuration options that should be declared in a graphql.config
object within the config/plugins
file. All parameters are optional:
Parameter | Description | Type | Default |
---|---|---|---|
apolloServer | Additional configuration for ApolloServer . | Object | {} |
artifacts | Object containing filepaths, defining where to store generated artifacts. Can include the following properties:
generateArtifacts is set to true . | Object |
|
defaultLimit | Default value for the pagination[limit] parameter used in API calls | Integer | 100 |
depthLimit | Limits the complexity of GraphQL queries. | Integer | 10 |
endpoint | The URL path on which the plugin is exposed | String | /graphql |
generateArtifacts | Whether Strapi should automatically generate and output a GraphQL schema file and corresponding TypeScript definitions. The file system location can be configured through artifacts . | Boolean | false |
maxLimit | Maximum value for the pagination[limit] parameter used in API calls | Integer | -1 |
playgroundAlways | Whether the playground should be publicly exposed. Enabled by default in if NODE_ENV is set to development . | Boolean | false |
shadowCRUD | Whether type definitions for queries, mutations and resolvers based on models should be created automatically (see Shadow CRUD documentation). | Boolean | true |
v4ComptabilityMode | Enables the retro-compatibility with the Strapi v4 format (see more details in the breaking change entry | Boolean | false |
Example custom configuration:
- JavaScript
- TypeScript
./config/plugins.js
module.exports = () => ({
graphql: {
enabled: true,
config: {
playgroundAlways: false,
defaultLimit: 10,
maxLimit: 20,
apolloServer: {
tracing: true,
},
}
}
})
./config/plugins.ts
export default () => ({
graphql: {
enabled: true,
config: {
playgroundAlways: false,
defaultLimit: 10,
maxLimit: 20,
apolloServer: {
tracing: true,
},
}
}
})