Incase его полезно для других - вот ситуация, с которой я столкнулся, когда модуль был загружен дважды:
Для следующей структуры проекта:
~/prj/js/app/fileA.js
~/prj/js/app/util/fileB.js
~/prj/js/ext/publisher.js
, где RequireJs baseurl
равно ~/prj/js/app
fileA.js
относится к внешней (внешней) зависимости publisher.js
как:
//fileA:
define(['../ext/publisher'], function(){});
Но fileB.js
относится к той же зависимости с другим путем:
//fileB:
define(['../../ext/publisher'], function(){});
Короче говоря, для обоих файлов пути зависимости различны, хотя зависимость находится в одном и том же месте. В этом случае файл publisher.js загружается дважды.
Используйте вкладку Net
в Firebug, чтобы увидеть ее загрузку дважды:

Это легко исправить, используя paths
для настройки пути к внешней папке (как описано в require_js docs ):
requirejs.config({
paths: {ext: '../ext'}
});
После установки paths
зависимость загружается только один раз с fileA.js
и fileB.js
, которые используют один и тот же путь зависимости следующим образом:
//fileA:
define(['ext/publisher'], function(){});
и
//fileB:
define(['ext/publisher'], function(){});