Node.js 吞咽乙烯基ftp-如何使用清洁功能?
乙烯基ftp的Node.js 吞咽乙烯基ftp-如何使用清洁功能?,node.js,ftp,gulp,vinyl,vinyl-ftp,Node.js,Ftp,Gulp,Vinyl,Vinyl Ftp,乙烯基ftp的软件包有一个功能,但我不知道如何正确使用它。我需要: 从我的build文件夹获取所有文件 将它们放入我的ftp服务器上的目标文件夹 清除本地不可用的文件 我有以下任务: gulp.task('deploy', () => { let conn = ftp.create({host:host,user:user,password: password}); return gulp.src('build/**', {base: './build/', buffer: fal
软件包有一个功能,但我不知道如何正确使用它。我需要:
从我的build
文件夹获取所有文件
将它们放入我的ftp服务器上的目标文件夹
清除本地不可用的文件
我有以下任务:
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()
函数不执行任何操作乙烯基ftp
文档:
conn.clean(全局、本地[、选项])
Globs远程文件,测试它们是否在/
本地可用,如果不可用,则删除它们
请注意,globs
需要FTP服务器上的远程文件的路径。由于远程文件位于/path/on/my/server/
中,因此必须将该路径指定为全局文件:
.pipe(conn.clean('/path/on/my/server/**', './build/'));
由于我对此进行了大量的斗争,这里有一个工作的代码和平。它将从服务器中删除除
用法
文件夹外本地不存在的所有文件:
var connection = ftp.create({ ... });
connection.clean([
'/*.*',
'/!(usage)*',
'/de/**',
'/en/**',
'/images/**',
'/fonts/**',
'/json/**',
'/sounds/**'
], './dist', { base: '/' });
我的文件位于本地的/dist
文件夹中,并直接位于根目录(/
)中(所用ftp用户的)