I've tried to import a schema with definitions but it does not work.
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "JSON schema for Webpack's bootstrap-loader configuration file",
"type": "object",
"definitions": {
"extractStyling": {
"type": "object",
"properties": {
"extractStyles": {
"default": false,
"description": "Enables/disables extraction of styles to a standalone CSS file using extract-text-webpack-plugin",
"type": "boolean"
}
}
},
"coreProperties": {
"type": "object",
"properties": {
"appStyles": {
"description": "Import your custom styles here. Usually this endpoint file contains a list of @imports of your application styles.",
"type": "string"
},
"bootstrapCustomizations": {
"description": "The .scss file path to be loaded after Bootstrap's _variables.scss file",
"type": "string"
},
"bootstrapVersion": {
"default": 3,
"description": "The major version of Bootstrap being used",
"enum": [ 3, 4 ],
"type": "integer"
},
"loglevel": {
"description": "The verbosity of logging. Exclude this property to disable.",
"enum": [ "debug" ],
"type": "string"
},
"preBootstrapCustomizations": {
"description": "The .scss file path to be loaded before Bootstrap's _variables.scss file",
"type": "string"
},
"scripts": {
"description": "Excludes/includes Bootstrap's JavaScript modules",
"type": [ "boolean", "object" ]
},
"styleLoaders": {
"default": [ "style", "css", "sass" ],
"description": "An array of Webpack loader names. Order matters, and sass-loader is required.",
"items": {
"type": "string"
},
"minItems": 1,
"type": "array",
"uniqueItems": true
},
"styles": {
"description": "Excludes/includes Bootstrap's CSS modules",
"type": [ "boolean", "object" ]
},
"useCustomIconFontPath": {
"default": false,
"description": "Set to true if using a custom icon font and you need to specify its path in your Sass files",
"type": "boolean"
},
"useFlexbox": {
"default": true,
"description": "Enables/disables the flexbox model available in Bootstrap 4",
"type": "boolean"
}
}
}
},
"allOf": [
{
"$ref": "#/definitions/coreProperties"
},
{
"anyOf": [
{
"properties": {
"env": {
"description": "Sets the extractStyles property based on the value of NODE_ENV",
"type": "object",
"properties": {
"development": {
"$ref": "#/definitions/extractStyling"
},
"production": {
"$ref": "#/definitions/extractStyling"
}
}
}
},
"not": {
"properties": {
"extractStyles": { }
},
"required": [ "extractStyles" ]
}
},
{
"properties": {
"extractStyles": {
"$ref": "#/definitions/extractStyling/properties/extractStyles"
}
},
"not": {
"properties": {
"env": { }
},
"required": [ "env" ]
}
}
]
},
{
"required": [ "bootstrapVersion", "styleLoaders" ]
}
]
}