Використання RequireJS з додатком Rails 3.1

Питання

Якщо ви використовували RequireJS з програмою Rails 3 (ESP 3.1), як це працює для вас? Будь-які трюки для налаштування або інші getchas, які мені потрібно стежити за?

Фон

Я розглядаю використання RequireJS над схемою Asset Pipeline у ​​Sprockets у Rails 3.1, зокрема для коду JavaScript. У мене є два мотиватори для цього вибору:

  • Я хочу використовувати керування модулем RequireJS для мого коду клієнта JS.
  • Мені потрібна система попереднього сполучення, яка може слідувати моєму коду бібліотеки JS в інші контексти. На мій подив, прекомпілятор "Asset Pipelines" є запеченою частиною Rails, а не частиною самого Sprockets.

Всі відгуки оцінили, дякую!

25
Чи можете ви сказати більше про те, чому ви хотіли б керувати модулем RequireJS над Sprockets? Я думаю про те, як це робити для нашого додатка Rails - замінити зірочки з RequireJS.
додано Автор kangax, джерело
@ kangax, Sprockets насправді не забезпечує управління модулем. Це просто конгломерат купу JavaScript у вбудований файл за допомогою директив Sprockets. Як це трапляється, я опублікував requij-rail дорогоцінний камінь для інтеграції RequireJS в Rails, використання Sprockets для перетворень CoffeeScript. Близько до версії 0.5.0 з підтримкою попереднього зчеплення.
додано Автор John Whitley, джерело

1 Відповіді

Для потомків, ось де я звернувся до цього питання:

  • RequireJS забезпечує реалізацію API асинхронного модуля визначення . RequireJS ' Чому AMD? сторінка викладає випадок, чому ви хочете використати це.

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

  • jQuery (від 1,7), Underscore, Dojo та інші великі бібліотеки реалізували підтримку AMD. Кілька інших великих бібліотек JS, як видається, мають підтримку AMD на найближчій перспективі (наприклад, Backbone.js).

Звичайно, можна створити приклад Rails, який об'єднує RequireJS. Щоб спростити цей процес, я створив дорогоцінну шину requij-rails на github , з простою конфігурацією та попередній компонування Esset Pipeline для коду на базі AMD за допомогою r.js . Поточний реліз доступний через:

gem install requirejs-рейки

48
додано
@leppert Ви завжди можете використовувати конфігурацію shim і експортувати "_".
додано Автор Chad Johnson, джерело
Дякую за цей камінь. Чи є приклад коду Rails, я бачу, що показує, як все налаштовано, бажано з Backbone. Я читав документи, але я новачок в requ.js, а не в тому, що був досвідченим у користуванні javascript, тому я працюю набагато краще з робочим прикладом.
додано Автор Leahcim, джерело
Ось приклад програми Rails 4, яка об'єднує вимоги-рейки: github.com/pboling/require-rails -приклад
додано Автор rubiii, джерело
Також для потомків підкреслення більше не підтримує AMD. Тим не менш, Лодаш - це крапчаста заміна підкреслення. lodas.com
додано Автор leppert, джерело