Подтвердить что ты не робот

Использование RequireJS с приложением Rails 3.1

Вопрос

Если вы использовали RequireJS с приложением Rails 3 (esp 3.1), как это работает для вас? Какие-либо уловки конфигурации или другие ошибки, которые мне нужно отслеживать?

Фон

Я рассматриваю использование RequireJS над Asset Pipeline на основе Sprockets в Rails 3.1, в частности, для кода JavaScript. У меня есть два мотиватора для этого выбора:

  • Я хочу использовать управление модулем RequireJS для моего клиентского кода JS.
  • Мне нужна система предварительной компиляции, которая может следовать за моим кодом библиотеки JS в других контекстах. К моему удивлению, прекомпилятор Asset Pipeline - это запеченная часть Rails, а не часть самого Sprockets.

Все отзывы оценены, спасибо!

4b9b3361

Ответ 1

Для потомков, здесь, где я пришел к этому вопросу:

  • RequireJS обеспечивает реализацию API Асинхронный модуль определения. RequireJS Почему AMD? страница объясняет, почему вы хотите использовать это.

  • Sprockets и Rails 3 Asset Pipeline позволяют просто структурировать код JavaScript/CoffeeScript, но не предоставляют никакой реальной поддержки модуля. Например, в Sprockets нет никакого пространства имен.

  • jQuery (начиная с версии 1.7), Underscore, Dojo и множество других крупных библиотек реализовали поддержку AMD. Несколько других крупных JS-библиотек, похоже, поддерживают AMD на ближайшем горизонте (например, Backbone.js).

Конечно, возможно создать приложение Rails, которое интегрирует RequireJS. Чтобы упростить этот процесс, я создал requirejs-rails gem on github, с простой конфигурацией и предварительной компиляцией Asset Pipeline для кода на базе AMD через r.js. Текущая версия доступна через:

gem install requirejs-rails