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');
});
我最终在凉亭完成之前部署了代码。
答案 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不满意。也许这可以帮助。如果需要,请使用它和/或发布一些问题。问候。
Bonzai's Shipit tasks:你会在这里看到我正在使用this.async()
作为第二个论点来解决你的问题。