vinyl-ftp
包有一个函数clean()
,但我不确定如何正确使用它。我需要:
build
文件夹我有以下gulp任务:
gulp.task('deploy', () => {
let conn = ftp.create({host:host,user:user,password: password});
return gulp.src('build/**', {base: './build/', buffer: false })
.pipe(conn.newer('/path/on/my/server/')) // only upload newer files
.pipe(conn.dest('/path/on/my/server/'))
.pipe(conn.clean('build/**', './build/'));
});
1)和2)没问题,但clean()
函数什么都不做
答案 0 :(得分:7)
vinyl-ftp
文档have this to say:
conn.clean(globs,local [,options])
Globs远程文件,测试它们是否在
<local>/<remote.relative>
本地可用,如果没有则将其删除。
请注意,globs
需要FTP服务器上远程文件的路径。由于远程文件位于/path/on/my/server/
,因此您必须将该路径指定为glob:
.pipe(conn.clean('/path/on/my/server/**', './build/'));
答案 1 :(得分:2)
由于我为此付出了很多努力,所以这里是一个有效的代码和平。它会从服务器中删除除usage
文件夹以外不存在的所有文件:
var connection = ftp.create({ ... });
connection.clean([
'/*.*',
'/!(usage)*',
'/de/**',
'/en/**',
'/images/**',
'/fonts/**',
'/json/**',
'/sounds/**'
], './dist', { base: '/' });
我的文件位于./dist
文件夹的本地文件中,并且直接位于根目录(/
)(已使用的ftp用户)中。