如何 gulp 本地 rsync

how to gulp rsync locally

我正在处理本地 htdoc 之外的站点文件,我想将其部署到本地站点。我将使用 gulp-watch 来观察变化,但我只是在 rsync 设置上绊倒了。文件结构:

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

这是 gulp 文件:

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

什么地方都没有写。我是否遗漏了一些明显的东西...

rsync 是 "remote sync" 的缩写,因此需要一个不同于本地系统的目的地。如果您想将一个目录中的内容同步到另一个目录,只需使用内置的 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'));
    }
});