Demo

Plugins installed but frontend module not loaded

The module row shows installed, but menus, routes, or the plugin frontend entry never appear in the browser.

Symptom

Backend may load, or the Modules UI shows installed=true, but the shell never registers the plugin UI — no side menu items, blank routes, or a missing frontend bundle in the network tab.

Checklist

  • Confirm base/backend/installed-plugins/<name>/ contains frontend/ and module.metadata.json — not only backend/
  • Folder name, metadata.name, and the Modules table name must match exactly
  • Rebuild with quan-erp watch <plugin>, then re-install (or confirm watch refreshed the installed copy)
  • Hard-refresh the browser; check Network for the plugin frontend entry (404 / blocked)
  • Open the browser console for register() / import errors from frontend/src/index.tsx
  • If the plugin declares pluginDependencies, those providers must be installed and load first

Source vs available vs installed

Watch only stages available-plugins. The shell loads installed-plugins. Building without Install (or without an already-installed refresh) leaves the UI on an old or empty copy.

  • Source — plugins/<name>/frontend/
  • Available — base/available-plugins/<name>/<version>/frontend/
  • Installed — base/backend/installed-plugins/<name>/frontend/

Entry must export PluginModule

The shell loads only frontend/src/index.tsx. Default-export a PluginModule and register routes/menus inside register(AppRegistry).

  • Missing or wrong default export → module never registers
  • Throwing inside register() → check console; fix and rebuild
  • Routes/menus added outside register() are ignored