2015-12-02 6 views

ответ

3

Вы можете использовать custom extension.

Например, если вы хотите запускать задачи глотка в конце цикла сборки, вы можете создать after_build расширение, как это:

В config.rb:

class MyFeature < Middleman::Extension 
    def initialize(app, options_hash={}, &block) 
    super 
    app.after_build do |builder| 
     builder.run 'gulp default' 
    end 
    end 
end 
::Middleman::Extensions.register(:my_feature, MyFeature) 

activate :my_feature 

Я проверил выше с глотком установлена ​​(npm install --global gulp) и следующий gulpfile.js:

var gulp = require('gulp'); 

gulp.task('default', function() { 
    console.log('Hello, world'); 
}); 

и после запуска middleman build я получаю выход, как следующее:

[21:25:24] Using gulpfile ~/dev/projects/demo/gulpfile.js 
[21:25:24] Starting 'default'... 
Hello, world 
[21:25:24] Finished 'default' after 98 μs 

extension docs есть другие примеры расширений, которые позволяют подключить в другие области Middleman для аналогичных целей.

Редактировать Пример after_configuration (непроверенных):

class MyFeature < Middleman::Extension 
    def initialize(app, options_hash={}, &block) 
    super 
    end 

    def after_configuration 
    # add your pre-build, post config.rb execution code here... 
    `gulp default` 
    end 
end 
+0

Awesome! работал и на меня, а – Ilja

+0

Еще один вопрос, есть ли способ запустить gulp перед сборкой, так как у меня есть некоторые файлы, которые игнорируются, чтобы сохранить сборку чистой. – Ilja

+0

Да, вы должны иметь возможность подключаться к обратным вызовам 'after_configuration' и' before'. 'after_configuration' вызывается сразу после выполнения config.rb, но до того, как произойдет любое строительство. 'before' вызывается непосредственно перед визуализацией любой страницы. [пользовательские расширения docs] (https://middlemanapp.com/advanced/custom_extensions/) показывают примеры реализации обоих из них. Я думаю, что 'after_configuration', скорее всего, то, что вы ищете. – torbinsky

 Смежные вопросы

  • Нет связанных вопросов^_^