Использование requirejs без основного файла или config()

Я создаю приложение, которое будет содержать много js (jquery) модулей (файлов), используя следующую настройку;

  • Сборка запускается с помощью Grunt Task Runner.
  • Я использую шаблоны рулей, затем генерирую HTML из файлов *.hbs.
  • Во время сборки я превращаю все файлы js в один уменьшенный файл.
  • Я вызываю минимизированный файл в моей заявке <script src="assets/js/app.min.js"></script>

Теперь я хочу использовать http://requirejs.org/ для организации своего кода и соблюдения спецификаций AMD.

Но у меня есть 3 проблемы с этим подходом:

  1. Мне нужно иметь 1 единственный уменьшенный файл для всех js; это делает мой код труднее для "декодирования", таким образом, для копирования (так как он смешан с другими зависимостями; jquery, modernizer..), а также помогает избежать лишних http-запросов, если скрипты вызываются по отдельности. Однако для инициализации requirejs нужен главный файл приложение и внутри этого основного файла он вызывает другие необходимые файлы.. У меня нет такой конфигурации.
  2. Многие из используемых мной зависимостей находятся в пакете bower (который я не включаю в дистрибутив); это делает невозможным вызов этих файлов с использованием предложенного метода requirejs.
  3. Я использую jquery для этого с некоторыми сторонними плагинами, которые не вызывают define(); чтобы заставить их работать, я должен использовать конфигурацию shim, которая снова поднимает проблему #2!

Итак, как я могу использовать requirejs, сохраняя мой код в модулях и хорошо организованный?

Извините за длинный вопрос и спасибо за чтение:)

ps: не стесняйтесь менять название вопроса, так как я не смог найти лучшего!

1 ответ

Решение

Я наконец выбрал AngularJS, так как он соответствует моей настройке выше и позволяет мне разбить мое приложение на управляемые небольшие модули.

У меня также есть возможность использовать простоту jQuery (хотя это не лучшая практика среди ангулярного сообщества) и многое другое.

Другие вопросы по тегам