2015-05-01 62 views
0

我正在處理我想要部署到本地站點的本地htdocs之外的站點文件。我將使用gulp-watch來監視變化,但是我只是在設置rsync時磕磕絆絆。文件結構:如何在本地吞服rsync

sitename/ -- 
    --htdocs/sites/all/themes/themename 
    --source/themes/themename 

而這裏的gulpfile:

var gulp = require('gulp'); 
var rsync = require('gulp-rsync'); 

gulp.task('deploy', function() { 
    gulp.src('source/**') 
    .pipe(rsync({ 
    root: 'source', 
    destination: '/htdocs/sites/all' 
    })); 
}); 

當我運行gulp deploy

[11:36:53] Using gulpfile ~/Sites/sitename/gulpfile.js 
[11:36:53] Starting 'deploy'... 
[11:36:53] Finished 'deploy' after 5.23 ms 

沒有任何地方寫的。我是否錯過了一些明顯的...

回答

0

rsync是「遠程同步」的縮寫,因此需要一個目標,而不是你的本地系統。如果你想同步從一個目錄到另一個目錄,只需使用內置的gulp方法即可。

gulp.task('deploy', function() { 
    gulp.src('source/**') 
     .pipe(gulp.dest('/htdocs/sites/all'); 
}); 

這將複製你需要的一切到另一個文件夾。如果你正在尋找也刪除文件,添加到您的守望者:

var watcher = gulp.watch('./source/**/*', ['deploy']); 
watcher.on('change', function(ev) { 
    if(ev.type === 'deleted') { 
     // path.relative gives us a string where we can easily switch 
     // directories 
     del(path.relative('./', ev.path).replace('./source','/htdocs/sites/all')); 
    } 
}); 
+0

偉大的,有時最簡單的東西逃避初學者。語法更正: – icicleking

+0

.pipe(gulp.dest('./ htdocs/sites/all')); – icicleking