bpanel
bpanel copied to clipboard
Removing plugins doesn't remove installed node modules
1. Start with genesis theme installed
config.js:
plugins: ['@bpanel/genesis-theme'],
node_modules:
bmenace-theme
bpanel-footer
bpanel-header
bpanel-ui
bpanel-utils
bui
chain-sockets
dashboard
genesis-theme
mempool-widget
peers-widget
recent-blocks
simple-wallet
2. Remove genesis theme:
config.js:
plugins: [],
node_modules:
bmenace-theme
bpanel-footer
bpanel-header
bpanel-ui
bpanel-utils
bui
chain-sockets
dashboard
genesis-theme
mempool-widget
peers-widget
recent-blocks
simple-wallet
3. Install bmoon theme by itself:
config.js:
plugins: ['@bpanel/bmoon-theme'],
node_modules:
bmoon-theme
bpanel-ui
bpanel-utils
4. Install publish data now without explicitly adding simple wallet
config.js:
plugins: ['@bpanel/bmoon-theme', '@bpanel/publish-data'],
node_modules:
bmoon-theme
bpanel-ui
bpanel-utils
publish-data
simple-wallet
...however, this produces a broken simple wallet in the interface, and JS errors in browser console:
warning.js?0c47:10 Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.
5. Install genesis theme again in addition:
config.js:
plugins: ['@bpanel/genesis-theme', '@bpanel/bmoon-theme', '@bpanel/publish-data'],
node_modules:
bmenace-theme
bmoon-theme
bpanel-footer
bpanel-header
bpanel-ui
bpanel-utils
bui
chain-sockets
dashboard
genesis-theme
mempool-widget
peers-widget
publish-data
recent-blocks
simple-wallet
...and now everything is fine again!

Theory on what is probably causing the issue: @bpanel/publish-data has a dependency on simple wallet (which it probably doesn't need in the first place) but it is using an old version of simple-wallet which hasn't updated to the new version of bPanel's redux system. Highlights that we need to improve the dependency and versioning system around plugins.
good find @pinheadmz!