Node.js 使用gulp sftp仅上载更改的文件
我有以下任务要完成:Node.js 使用gulp sftp仅上载更改的文件,node.js,sftp,gulp,gulp-watch,Node.js,Sftp,Gulp,Gulp Watch,我有以下任务要完成: gulp.task('sync-frontend', /*['build-frontend'],*/ function() { if(config.layout.frontend.syncOnBuild) return gulp .src(config.layout.frontend.distDir + '/**') .pipe(changed(config.layout.frontend.distD
gulp.task('sync-frontend', /*['build-frontend'],*/ function()
{
if(config.layout.frontend.syncOnBuild)
return gulp
.src(config.layout.frontend.distDir + '/**')
.pipe(changed(config.layout.frontend.distDir, {hasChanged: changed.compareSha1Digest}))
//.pipe(debug())
.pipe(gulp.dest(config.layout.frontend.distDir))
.pipe(sftp
({
host: config.sftp.host,
port: config.sftp.port,
user: config.sftp.user,
pass: config.sftp.pass,
remotePath: (config.layout.frontend.remotePath ? config.layout.frontend.remotePath : config.sftp.remotePath )
}));
});
config.layout.frontend.distDir值为“httpdocs”
问题是,无论文件是否更改,都没有上载任何文件(我已尝试在默认情况下保留gulp的hasChange选项已更改。我始终获得以下输出:
[20:45:52] Using gulpfile /Storage/Portable/Sync/Projects/Prataria/web-prataria/gulpfile.js
[20:45:52] Starting 'sync-frontend'...
[20:45:52] gulp-sftp: No files uploaded
[20:45:52] Finished 'sync-frontend' after 503 ms
有什么想法吗?我发现gulp.src上的格式需要加上前缀
/
,才能找到正确的文件夹。因此,尝试使用/httpdocs
作为config.layout.frontend.distDir
您可以将sftp与另一个库(如“gulp changed”或“gulp watch”)一起使用.尝试使用该库。较新的
功能只能用于上载较新的文件。该库的自述文件甚至包括一个示例吞咽任务,该任务显示了以下内容:
var gulp = require( 'gulp' );
var gutil = require( 'gulp-util' );
var ftp = require( 'vinyl-ftp' );
gulp.task( 'deploy', function () {
var conn = ftp.create( {
host: 'mywebsite.tld',
user: 'me',
password: 'mypass',
parallel: 10,
log: gutil.log
} );
var globs = [
'src/**',
'css/**',
'js/**',
'fonts/**',
'index.html'
];
// using base = '.' will transfer everything to /public_html correctly
// turn off buffering in gulp.src for best performance
return gulp.src( globs, { base: '.', buffer: false } )
.pipe( conn.newer( '/public_html' ) ) // only upload newer files
.pipe( conn.dest( '/public_html' ) );
} );