Purpose
Modules are processed in two sets, the default modules predefined in BBH (Babel-Standalone and RequireJS) and then the user designated modules.
While there are certainly advantages to having a built-in and/or expected dependency versions, it's good to have the option to experiment with other versions in case of bugs, unexpected regressions, or newly available features.
Additionally, it's sometimes preferable (or required) to have a completely offline development environment, and that's not possible without the ability to override the CDN libraries.
Proposal
If a module is loaded in bbh.modules with the same name as one in DEFAULT_MODULES, ignore the one in DEFAULT_MODULES.
A simpler way to process it might be to simply drop any modules that have already been defined when determining load order in buildModuleEntries().
Caveat: Default Module Load Order
The default modules are currently loaded after user-specified modules, as RequireJS needs to be the last library to load, so it may be preferable to keep overrides in their default load positions if they are specified (by "name") in the default modules.
Load Position Alternative
Instead of retaining default load positions, it might also work to have a boolean field like "last" or "late" to designate that a library should be loaded as late as possible. If issue #1 get's completed, these "late" loaders would still need to be ordered via the "depends" field, which could potentially entail loading "early" loaders after "late" loaders and potentially complicate things a bit.
Purpose
Modules are processed in two sets, the default modules predefined in BBH (Babel-Standalone and RequireJS) and then the user designated modules.
While there are certainly advantages to having a built-in and/or expected dependency versions, it's good to have the option to experiment with other versions in case of bugs, unexpected regressions, or newly available features.
Additionally, it's sometimes preferable (or required) to have a completely offline development environment, and that's not possible without the ability to override the CDN libraries.
Proposal
If a module is loaded in
bbh.moduleswith the same name as one inDEFAULT_MODULES, ignore the one inDEFAULT_MODULES.A simpler way to process it might be to simply drop any modules that have already been defined when determining load order in
buildModuleEntries().Caveat: Default Module Load Order
The default modules are currently loaded after user-specified modules, as RequireJS needs to be the last library to load, so it may be preferable to keep overrides in their default load positions if they are specified (by "name") in the default modules.
Load Position Alternative
Instead of retaining default load positions, it might also work to have a boolean field like "last" or "late" to designate that a library should be loaded as late as possible. If issue #1 get's completed, these "late" loaders would still need to be ordered via the "depends" field, which could potentially entail loading "early" loaders after "late" loaders and potentially complicate things a bit.