我有以下任务:
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 )
}));
});Httpdocs值是‘config.layout.frontend.distDir’。
问题是没有上传任何文件,不管它们是否被更改(我已经尝试在默认情况下保留hasChange选项的gulp-changed。我总是得到以下输出:
[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有什么想法吗?
发布于 2014-08-24 08:14:11
我遇到了这个问题,发现gulp.src上的格式需要加上./作为前缀才能找到正确的文件夹。因此,尝试将./httpdocs作为config.layout.frontend.distDir的值。
发布于 2016-03-15 22:02:03
你可以将-sftp和另一个库一起使用,比如“gulp changed”或"gulp-watch“。
发布于 2019-10-05 14:48:56
尝试使用vinyl-ftp库。newer函数可用于仅上传较新的文件。该库的自述文件甚至包括一个示例Gulp任务,它在实际操作中显示了这一点:
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' ) );
} );https://stackoverflow.com/questions/25101049
复制相似问题