Как структурировать проект JavaScript?

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

14
задан double-beep 8 July 2019 в 12:12
поделиться