В настоящее время я работаю над большим проектом JavaScript, для которого мы хотим определить наш собственный API. Я использую RequireJS в качестве загрузчика зависимостей, и он мне подходит, что позволяет мне определять модули в соответствующих файлах. Я не использую свое собственное пространство имен, модуль возвращает экземпляр, который можно использовать в других модулях, а именно:
define(
['imported_module'],
function(module){
module.doSomething();
}
)
Однако по мере того, как количество файлов растет, я бы хотел решить, как структурировать эти файлы в папках. В настоящее время я использую следующую схему для именования моих файлов:
[projectname].[packagename].[ModuleName]
Примером может служить stackoverflow.util.HashMap.js. Я хотел бы представить папку проекта, папку для каждого пакета и переименовать файлы в имя модуля, например:
stackoverflow/util/HashMap.js
Это довольно аккуратно структурирует мой код в папки, однако имя файла теперь отражает только модуль. Я хотел бы определить некоторую маршрутизацию, чтобы иметь возможность определить, как RequireJS должен искать файлы. Пример:
Файл
stackoverflow/util/stackoverflow.util.HashMap.js
Должен быть импортирован выражением
define(['stackoverflow.util.HashMap'],function(HashMap){});
Кто-нибудь имел опыт структурирования больших проектов JavaScript, и если да, не могли бы вы поделиться своим подходом?