Rails 3.2 Asset Pipeline и RequireJS
Я собираюсь запустить богатое клиентское веб-приложение с Ruby on Rails 3.2. Я намеревался использовать RequireJS, но, похоже, сталкивается с Asset Pipeline. Насколько мне известно, то, что последнее в основном делает, - это объединение зависимых активов, минимизация и сжатие их (исправьте меня, если я ошибаюсь), что не очень похоже на загрузку файлов JavaScript асинхронно.
На первый взгляд, Asset Pipeline, похоже, имеет гораздо лучшую производительность. Тем не менее, RequireJS позволяет организовать код JavaScript в модулях, которые легко повторно использовать и управлять его зависимостями.
Есть ли способ объединить оба из них? Если нет, какой из них вы выберете?
Ответы
Ответ 1
Возможно, вам стоит взглянуть на этот драгоценный камень https://github.com/jwhitley/requirejs-rails/
Кажется, что вы делаете то, что хотите, - то есть использовать requirejs для загрузки клиентской стороны, все еще пользуясь некоторыми конвейерами активов.
У меня возникнет соблазн предположить, что я предполагаю, что в большинстве случаев конвейер ресурсов будет намного быстрее, поскольку он загружает один мини-ресурс js. Управление зависимостями не так хорошо, хотя, так что это будет очень сильно зависеть от приложения.
Ответ 2
Я бы предложил загрузить библиотеку RequireJS и перебросить ее в vendor/assets/javascripts
. Затем в файле application.js
:
//= require require
(смешно, да?), и этого должно быть достаточно.
Это самый простой способ объединить конвейер активов и модульную библиотеку js. Мне неизвестны какие-либо дополнительные настройки, которые нужны этой конкретной библиотеке, но вы можете взглянуть на этот Railscast, который описывает что-то подобное.