RequireJS: Как определить модули, содержащие один «класс»?

У меня есть несколько «классов» JavaScript, каждый из которых реализован в собственном файле JavaScript. Для разработки эти файлы загружаются индивидуально, а для производства они объединяются, но в обоих случаях мне приходится вручную определять порядок загрузки, следя за тем, чтобы B был после A, если B использует A. Я планирую использовать RequireJS как реализацию CommonJS Modules / AsynchronousDefinition , чтобы решить эту проблему автоматически.

Есть ли лучший способ сделать это, чем определять модули, которые каждый экспорт одного класса? Если нет, то как назвать то, что экспортирует модуль? Модуль «Сотрудник», экспортирующий класс «Сотрудник», как в примере ниже, мне не кажется DRY достаточно.

define("employee", ["exports"], function(exports) {
    exports.Employee = function(first, last) {
        this.first = first;
        this.last = last;
    };
});

define("main", ["employee"], function (employee) {
    var john = new employee.Employee("John", "Smith");
});

67
задан Robert Koritnik 21 January 2014 в 22:23
поделиться