如何 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'));
}
});
我正在处理本地 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'));
}
});