I always define everything required for a module to run. If you don't, it's not really portable. If you, in the future, remove an upstream dependency, your downstream model can also break. ie,
define('a', ['app','backbone','myplugin', ...]
define('b', ['app','backbone','a', ...]
If b
and a
both use myplugin
, then at some point in the future a
no longer needs it, when you remove myplugin
from a
you will break b
without knowing it.