В настоящее время я работаю над большим проектом JavaScript, для которого мы хотим определить наш собственный API. Я использую RequireJS в качестве загрузчика зависимостей, и он подходит мне просто отлично, позволяя мне определять модули в соответствующем файле. Я не использовать мои собственное пространство имен, модуль возвращает экземпляр, который может быть использован в других модулях, то есть:Как структурировать проект JavaScript с использованием 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, и если да, то не могли бы вы поделиться своим подходом?
Возможно, вы можете сделать это с помощью настраиваемого плагина ... что-то вроде 'use! Stackoverflow.util.HashMap' – blockhead
Как сказал блокхолд: API-интерфейс плагина имеет функцию« нормализации », которая принимает имя и переводит его в путь , Взгляните на: http://requirejs.org/docs/plugins.html # apinormalize – David