Advanced
Tagging features
Tagging your features helps build smaller datafiles, so that your applications get to load only the minimum required features in the runtime.
Configuration#
Every Featurevisor project needs to define a set of tags in the configuration file:
featurevisor.config.js
module.exports = { tags: [ 'web', 'mobile', // add more tags here... ], environments: [ 'staging', 'production', ],}
Defining features#
Above configuration enables you to define your features against one or more tags as follows:
features/my_feature.yml
description: My featuretags: - web# ...
Learn more about defining features.
Building datafiles#
When building datafiles, Featurevisor will create separate datafiles for each tag:
$ tree datafiles.├── staging│ ├── featurevisor-tag-web.json│ └── featurevisor-tag-mobile.json└── production ├── featurevisor-tag-web.json └── featurevisor-tag-mobile.json
Consuming datafile#
Now from your application, you can choose which datafile to load:
your-app/index.js
import { createInstance } from '@featurevisor/sdk'const datafileUrl = 'https://cdn.yoursite.com/production/featurevisor-tag-web.json'const datafileContent = await fetch(datafileUrl).then((res) => res.json())const f = createInstance({ datafile: datafileContent,})
Learn more about SDKs.