Gulp vinyl ftp - 如何使用清洁功能?
Gulp vinyl ftp - how to use clean function?
vinyl-ftp
包有一个功能 clean()
但我不确定如何正确使用它。我需要:
- 从我的
build
文件夹中获取所有文件
- 将它们放入我的 ftp 服务器上的目标文件夹
- 清理本地不可用的文件
我有以下 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()
函数什么都不做
vinyl-ftp
文档 have this to say:
conn.clean( globs, local[, options] )
Globs remote files, tests if they are locally available at <local>/<remote.relative>
and removes them if not.
请注意,globs
需要您的 FTP 服务器上 远程 文件的路径。由于您的远程文件位于 /path/on/my/server/
中,因此您必须将该路径指定为您的 glob:
.pipe(conn.clean('/path/on/my/server/**', './build/'));
由于我为此苦苦挣扎,这里是代码的工作和平。它从服务器中删除本地不存在的所有文件,usage
文件夹除外:
var connection = ftp.create({ ... });
connection.clean([
'/*.*',
'/!(usage)*',
'/de/**',
'/en/**',
'/images/**',
'/fonts/**',
'/json/**',
'/sounds/**'
], './dist', { base: '/' });
我的文件在本地 ./dist
文件夹中,远程直接在根目录 (/
) 中(使用的 ftp 用户)。
vinyl-ftp
包有一个功能 clean()
但我不确定如何正确使用它。我需要:
- 从我的
build
文件夹中获取所有文件 - 将它们放入我的 ftp 服务器上的目标文件夹
- 清理本地不可用的文件
我有以下 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()
函数什么都不做
vinyl-ftp
文档 have this to say:
conn.clean( globs, local[, options] )
Globs remote files, tests if they are locally available at
<local>/<remote.relative>
and removes them if not.
请注意,globs
需要您的 FTP 服务器上 远程 文件的路径。由于您的远程文件位于 /path/on/my/server/
中,因此您必须将该路径指定为您的 glob:
.pipe(conn.clean('/path/on/my/server/**', './build/'));
由于我为此苦苦挣扎,这里是代码的工作和平。它从服务器中删除本地不存在的所有文件,usage
文件夹除外:
var connection = ftp.create({ ... });
connection.clean([
'/*.*',
'/!(usage)*',
'/de/**',
'/en/**',
'/images/**',
'/fonts/**',
'/json/**',
'/sounds/**'
], './dist', { base: '/' });
我的文件在本地 ./dist
文件夹中,远程直接在根目录 (/
) 中(使用的 ftp 用户)。