Сейчас я работаю над большим проектом 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, и если да, не могли бы вы поделиться своим подходом?