Использование requirejs без основного файла или config()
Я создаю приложение, которое будет содержать много js (jquery) модулей (файлов), используя следующую настройку;
- Сборка запускается с помощью Grunt Task Runner.
- Я использую шаблоны рулей, затем генерирую HTML из файлов *.hbs.
- Во время сборки я превращаю все файлы js в один уменьшенный файл.
- Я вызываю минимизированный файл в моей заявке
<script src="assets/js/app.min.js"></script>
Теперь я хочу использовать http://requirejs.org/ для организации своего кода и соблюдения спецификаций AMD.
Но у меня есть 3 проблемы с этим подходом:
- Мне нужно иметь 1 единственный уменьшенный файл для всех js; это делает мой код труднее для "декодирования", таким образом, для копирования (так как он смешан с другими зависимостями; jquery, modernizer..), а также помогает избежать лишних http-запросов, если скрипты вызываются по отдельности. Однако для инициализации requirejs нужен главный файл приложение и внутри этого основного файла он вызывает другие необходимые файлы.. У меня нет такой конфигурации.
- Многие из используемых мной зависимостей находятся в пакете bower (который я не включаю в дистрибутив); это делает невозможным вызов этих файлов с использованием предложенного метода requirejs.
- Я использую jquery для этого с некоторыми сторонними плагинами, которые не вызывают define(); чтобы заставить их работать, я должен использовать конфигурацию shim, которая снова поднимает проблему #2!
Итак, как я могу использовать requirejs, сохраняя мой код в модулях и хорошо организованный?
Извините за длинный вопрос и спасибо за чтение:)
ps: не стесняйтесь менять название вопроса, так как я не смог найти лучшего!
1 ответ
Я наконец выбрал AngularJS, так как он соответствует моей настройке выше и позволяет мне разбить мое приложение на управляемые небольшие модули.
У меня также есть возможность использовать простоту jQuery (хотя это не лучшая практика среди ангулярного сообщества) и многое другое.