name: wix-cli-extension-registration description: Register Wix CLI extensions with the app in src/extensions.ts. Use when registering new or existing extensions with the main app builder.
Wix App Registration
After creating any extension file, you MUST update the main src/extensions.ts file to register the extension with the app. Without this step, the extension will not be recognized by Wix CLI.
Simple Pattern (Recommended for Small Apps)
src/extensions.ts - Import and register extensions directly:
import { app } from "@wix/astro/builders";
import { dataExtension } from "./data/extensions.ts";
import { dashboardpageMyPage } from "./dashboard/pages/my-page/extensions.ts";
import { embeddedscriptMyScript } from "./site/embedded-scripts/my-script/extensions.ts";
export default app()
.use(dataExtension)
.use(dashboardpageMyPage)
.use(embeddedscriptMyScript);
Steps for each new extension:
- Import the extension from its
extensions.tsfile - Add
.use(extensionName)to the app chain - Chain multiple extensions together
Advanced Pattern (For Large Apps)
src/index.ts - Re-export all extensions:
export { dashboardpageMyPage } from "./dashboard/pages/my-page/extensions";
export { embeddedscriptMyScript } from "./site/embedded-scripts/my-script/extensions";
export { dataExtension } from "./data/extensions";
src/extensions.ts - Register all extensions programmatically:
import { app } from "@wix/astro/builders";
import * as allExtensions from "./index";
const extensionList = Object.values(allExtensions);
const appBuilder = app();
extensionList.forEach((extension) => {
appBuilder.use(extension);
});
export default appBuilder;
Extension Types Without Registration
The following extension types do not require extensions.ts files:
- Backend API - Astro server endpoints are auto-discovered
Naming Conventions
Extension export names follow this pattern: {extensiontype}{CamelCaseName}
Examples:
dashboardpageCartPopupManagerembeddedscriptCouponPopupsitewidgetCountdownWidgetsitepluginProductBadgeecomshippingratesCustomShipping
The type prefix is the extension type in lowercase with no separators.