Hi,
This may be caused by different versions of D3 being loaded in your app.
Suppose ModuleA uses D3 version 3.5.15 while ModuleB uses D3 versions 3.5.17. This means both versions will be loaded by SystemJS and there won't be a single (shared) instance in your app.
One way to find out if it's the case is to run the command
> jspm inspect
and look if the D3 library has 2 different versions.
If you control ModuleA and ModuleB, you can then change one to use the same version as the other. That way, only one instance will be loaded and your problem should be resolved.
Also note that there is an open pull request to enhance the jspm inspect command (
https://github.com/jspm/jspm-cli/pull/1968), so that it only shows dependencies which have multiple versions, as well as telling you from where it comes from (i.e. which parent has which version of the dependency, in your case, this would be ModuleA and ModuleB).
Hope this helps,
Olivier