Shippitjs在部署之前运行任务

时间:2015-04-30 09:58:23

标签: javascript deployment

shipitjs {I}我试图建立所有的东西"在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 个答案:

答案 0 :(得分: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');
})

此解决方案等待任务bower:install和composer:在启​​动部署之前安装完成。

答案 1 :(得分:0)

旧的问题是,但是在新的Stack中您可以找到许多请求的示例。

我使用Shipit JS而不是Capistrano创建了一个WordPress开发堆栈,因为我对Ruby不满意。也许这可以帮助。如果需要,请使用它和/或发布一些问题。问候。

WP-Jungle / Bonzai

Bonzai's Shipit tasks:你会在这里看到我正在使用this.async()作为第二个论点来解决你的问题。