2014-09-04 92 views
1

我正在使用Gulp觀看文件,通過ftp上傳文件,並在上傳完成時發送通知。我不知道如何連接這些插件來使其工作。現在,我有:Gulp - 通過ftp上傳文件後通知

var gulp  = require('gulp'), 
    ftp  = require('gulp-ftp'), 
    watch  = require('gulp-watch'), 
    notify = require('gulp-notify'); 

var markupWatcher = watch({ glob: 'src/*.php', name: 'markup' }); 
markupWatcher.gaze.on('all', function(event, path) { 
    options.remotePath = ftpData.remotePath; 
    gulp.src(path) 
    .pipe(ftp(options)) 
    .on('finish', function() { 
     console.log('test'); 
     notify({title: 'File Uploaded', message: 'test'}); 
    }); 

我認爲需要通知要傳遞給.pipe(),但我不知道該怎麼做,在這方面(的回調內.on())。在控制檯上打印「測試」,但通知無聲。

這似乎是一個簡單的任務,但不熟悉Node會讓Gulp變得困難。

感謝您的任何建議。

+0

什麼使你使用'finish'事件,而不是僅僅通過管道流'通知'? – Ben 2014-09-04 21:07:12

+0

如果您只是通過管道通知,那麼通知將在文件上傳完成之前顯示。 – nichoth 2014-09-05 22:10:23

回答

3

我想你可能想,因爲你需要通知上比流的data事件之外的事件,直接使用node-notifier

var gulp   = require('gulp'), 
    ftp    = require('gulp-ftp'), 
    watch   = require('gulp-watch'), 
    Notification = require('node-notifier'); 

var notifier = new Notification(); 
var markupWatcher = watch({ glob: 'src/*.php', name: 'markup' }); 
markupWatcher.gaze.on('all', function(event, path) { 
    options.remotePath = ftpData.remotePath; 
    gulp.src(path) 
    .pipe(ftp(options)) 
    .on('finish', function() { 
     console.log('test'); 
     notifier.notify({title: 'File Uploaded', message: 'test'}); 
    }); 
+0

它的工作原理!謝謝。 – nichoth 2014-09-11 18:11:30