Глоток винила ftp - как использовать чистую функцию?
vinyl-ftp
пакет имеет функцию clean()
но я не уверен, как правильно его использовать. Мне необходимо:
- получить все файлы из моего
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()
функция ничего не делает
2 ответа
vinyl-ftp
Документы имеют это, чтобы сказать:
conn.clean (globs, local [, options])
Globs удаленные файлы, тесты, если они локально доступны на
<local>/<remote.relative>
и удаляет их, если нет.
Обратите внимание, что globs
ожидает путь к удаленным файлам на вашем FTP-сервере. Поскольку ваши удаленные файлы находятся в /path/on/my/server/
Вы должны указать этот путь как ваш глобус:
.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).