Configuration
FAB builds use a fab.config.json5
file:
// fab.config.json5
{
plugins: {
'@fab/input-static': {
dir: 'dist', // Read files from this directory
},
'@fab/plugin-render-html': {
// Enrich HTML files with:
injections: {
env: {
name: 'FAB_SETTINGS', // which global variable to use?
},
csp: {
nonce: true,
},
},
},
'@fab/plugin-rewire-assets': {},
},
settings: {
production: {
API_URL: 'https://api.lol.com',
},
staging: {
API_URL: 'https://staging.lol.com',
},
},
deploy: {
'deploy-provider-name': {
setting: 'value',
secret: '@ENV_VAR',
},
},
}
Value types
This file is JSON5, a superset of JSON that's closer to normal JS syntax (i.e. it has comments and unquoted keys). A normal JSON file is valid JSON5, though, if you prefer that, and support for other formats like YAML is planned.
We deviate in one important respect, however, which is that string values of the form "/regexp/i"
are parsed using regex-parser. For reference, the exact regexp we use is here.
The other special-case value is one like @ALL_CAPS
, which is used with dotenv
to look for an appropriate environment variable.