Включите Require.JS (сборка r.js) в сборку Middleman.

Я работаю с Middleman над разработкой, тестированием и созданием моих проектов HAML и SASS.

Теперь мне тоже нравится работать с require.js. Можно ли как-нибудь интегрировать сборку R.js в сборку Middleman?

У вас был какой-то опыт с этим? Как вы справляетесь с require.js в посреднике?


person meo    schedule 23.11.2012    source источник


Ответы (2)


Что касается просто «запуска r.js», это довольно просто:

  1. Сохраните r.js в корень проекта.
  2. Определите пользовательское расширение (config.rb), которое выполняет r.js после сборки:

    module RequireJS
        class << self
            def registered(app)
                app.after_build do |builder|
                    exec('node r.js -o build/javascripts/app.build.js');
                end
            end
            alias :included :registered
        end
    end
    
    ::Middleman::Extensions.register(:requirejs, RequireJS)
    
  3. Активировать пользовательское расширение (config.rb):

    configure :build do
        …
        activate :requirejs
    end
    
person backflip    schedule 12.01.2013
comment
Я бы посоветовал не использовать там exec, так как он заменяет текущий исполняемый процесс новым процессом оболочки и, следовательно, когда он возвращает исходный процесс, он также возвращается. Например. если вы попробуете это в irb: exec "echo hello world", вы увидите, что процесс irb завершается, когда возвращается команда echo. Это может вызвать некоторое забавное поведение, например, если вы хотите запустить какой-то код ruby ​​​​после вызова exec, тогда эти строки никогда не будут выполнены. Поэтому лучше используйте: system 'node r.js....' - person Timo; 27.06.2013

r.js можно использовать с node через командную строку, как и посредник. Я не знаю, как именно вы используете посредника, но включение другой команды в ваш рабочий процесс не должно быть проблемой. Вы можете найти инструкции по использованию r.js из командной строки здесь.

person davidpfahler    schedule 30.11.2012
comment
я знаю, как использовать командную строку, спасибо ;) Есть команда middleman build. Когда я это сделаю, я хотел бы включить сборку require.JS... - person meo; 01.12.2012
comment
Для этого потребуется подключаемый модуль, которого, к сожалению, не существует, см. эту проблему. Вы можете взломать его, используя псевдоним в вашем профиле bash alias build="node r.js [...]; middleman build" - person davidpfahler; 03.12.2012