2015-04-30 3 views
0

С shipitjs Я пытаюсь «построить все вещи» локально, прежде чем shippitjs синхронизирует их с сервером. Однако я не могу решить, как его дождаться, пока мои задачи с бауэр и композитором не будут завершены до его развертывания.Shippitjs запускает задачи перед развертыванием

require('shipit-deploy')(shipit); 
require('shipit-shared')(shipit); 

/* config ... */ 

shipit.task('composer:install', function() { 
    return shipit.local('composer --install --optimize --prefer-dist ', {cwd:shipit.config.workspace}); 
}); 

shipit.task('bower:install', function() { 
    return shipit.local('bower install', {cwd:shipit.config.workspace}); 
}); 

shipit.on('fetched',function(){ 
    shipit.start('composer:install','bower:install'); 
}); 

В конце концов, у меня развернутый код до того, как беседка выполнена.

ответ

2

Старый вопрос, но он все еще может быть полезен. Вы можете попробовать следующее:

require('shipit-deploy')(shipit); 
require('shipit-shared')(shipit); 

/* config ... */ 

shipit.task('composer:install', function() { 
    return shipit.local('composer --install --optimize --prefer-dist ', {cwd:shipit.config.workspace}); 
    return shipit.emit('bower_install'); 
}); 

shipit.task('bower:install', function() { 
    shipit.local('bower install', {cwd:shipit.config.workspace}); 
    return shipit.emit('deploy'); 
}); 

shipit.on('bower_install', function() { 
    return shipit.start('bower:install'); 
}) 

shipit.on('predeploy',function(){ 
    shipit.start('composer:install'); 
}) 

shipit.on('deploy',function(){ 
    shipit.start('deploy:init'); 
}) 

Это решение ждет задач беседки: установить и композитор: установить, чтобы закончить до начала развертывания.

0

Старый вопрос да, но новый стек, в котором вы найдете много примеров для вашего запроса.

Я создал стек разработки WordPress, используя Shipit JS вместо Capistrano, потому что мне не удобно с Ruby. Может быть, это может помочь. Почувствуйте его использование и/или отправьте некоторые вопросы, если это необходимо. С уважением.

WP-Jungle/Bonzai

Bonzai's Shipit tasks: вы увидите здесь, что я использую this.async() в качестве второго аргумента, который должен решить проблему.

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