I have this very strange behavior and can't find what's wrong.
I use the developer's web appbuilder 2.1. I copied the localayer 2.0 in the widget directory of an existing application and I added:
"name": "Local Layer",
Once I refresh the map, the basemap changes from the selected "Streets" basemap to the National GeographicMap basemap.
If I remove the locallayer widget entry from config.json, it restores the Streets basemap!!