Rails Engines: общие зависимости активов

Я пишу монтируемый движок Rails 3.1, который добавляет функции в основное приложение (т. е. он не изолирован).JS движка зависит от jQuery, jQueryUI, DataTablesи JSTree(среди других библиотек), поэтому манифест движка выглядит примерно так: :

// my_engine.js

//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require jstree_pre1.0_fix_1/jquery.jstree.js
//= require_tree .

Затем я могу условнозагрузить этот файл в макет основного приложения, используя:

<%= javascript_include_tag 'application' %>
<%= javascript_include_tag 'my_engine/my_engine' if user_logged_in? %>

Однако, если манифест основного приложения уже включает одну из зависимостей (скорее всего, jQuery и jQuery_UJS), то эти зависимости будет загружен дважды. Я увижу что-то вроде:



...






...

Sprocketдиректива requireпотребует актива только один раз в одном и том же пакете, но здесь я работаю с двумя пакетами. Чтобы упростить другим разработчикам реализацию моего движка, я бы хотел, чтобы они могли включить одну строку, которая определяет, включены ли уже общие зависимости. Есть ли хороший способ сделать это с помощью Sprockets?

6
задан tristanm 5 March 2012 в 22:34
поделиться