Extension Bundles
Extension bundles can be used when an extension consists of a combination of several related sub-extensions which are supposed to be installed together. They allow you to combine and share dependencies between one or more extensions and are developed using JavaScript / Node.js.
Create a Bundle
When scaffolding your Directus extension, select the bundle type. This will create a new empty bundle.
Entries
In your bundle's package.json file, the directus:extension object has an entries array that describes all of the items contained within the bundle.
Example of an entry:
{
"type": "interface",
"name": "my-interface",
"source": "src/my-interface/index.ts"
}{
"type": "interface",
"name": "my-interface",
"source": "src/my-interface/index.ts"
}Entries in a bundle are located within a src directory in the bundle.
Partial
For bundle type extensions package.json file, the directus:extension object supports an additional optional partial property. This boolean property controls whether the bundles entries can be individually disabled. This is enabled by default.
Add New Extensions To a Bundle
Create New
- Navigate to your bundle extension directory in your terminal.
- Use the
npm run addcommand and select an extension type.
This will scaffold a new blank extension for you to work on.
TIP
The bundle extension type currently doesn't support the migration extension type.
Add Existing
- Move your extension directory within your bundle's
srcdirectory. - Add an entry to the bundle's
package.json.
Remove an Extension From a Bundle
- Delete the extension directory from your
srcdirectory. - Remove the entry from your
package.json.