Сценарий Gulp, который приводит к сбою FTP в Azure WebApp с помощью getaddrinfo ENOTFOUND
Я пытаюсь собрать сценарий gulp, который будет следить за моими измененными файлами (внешними файлами, такими как css, js, cshtml) и отправлять их по FTP в мое Azure WebApp в момент их изменения. Я использую gulp-ftp, но если есть лучший вариант, пожалуйста, дайте мне знать.
gulp.src(cssRoot).pipe(
foreach(function (stream, rootFolder) {
gulp.watch([cssRoot + "/**/*.css", jsRoot + "/**/*.js", cshtmlRoot + "/**/*.cshtml"], function (event) {
if (event.type === "changed") {
console.log("publish file " + event.path);
gulp.src(event.path, { base: './' })
.pipe(ftp({
host: 'ftp://my-azure.website-ftp-url/',
user: 'my-azure-ftp-username\in-the-complete-form',
pass: 'my-azure-ftp-password',
remotePath: 'site\wwwroot\'
}))
.pipe(gutil.noop());
}
console.log("published " + event.path);
});
return stream;
})
);
});
Я проверил учетные данные для FTP, используя FileZilla, и он отлично работает. (Я извлек их, используя метод здесь).
Часы, кажется, работают нормально, однако FTP, похоже, не работает со следующей ошибкой:
events.js:160
throw er; // Unhandled 'error' event
^
Error: getaddrinfo ENOTFOUND ftp://my-azure.website-ftp-url/ ftp://my-azure.website-ftp-url/:21
at errnoException (dns.js:28:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)
Кто-нибудь знает, почему он не может подключиться?
Я также не уверен, что мой сценарий скопирует файл в относительное местоположение веб-сайта, или он пойдет прямо в корень..... но это совсем другой вопрос.
2 ответа
Как отметил @Mark, сначала удалите "ftp://" из значения вашего хоста.
Затем вам также необходимо удвоить "\" в пользовательском значении (например: "someapp\\someuser"). Вижу винил-фтп странная ошибка.
Что ж, gulp-ftp говорит, что он устарел в пользу винил-ftp, хотя это, вероятно, не ваша проблема. Я бы удалил "ftp://" из значения вашего хоста (если оно есть) и посмотрел бы, работает ли лучше.
Вот очень хороший блог об использовании винил-фтп с использованием gulp с винил-фтп. Винил-ftp также может прекрасно переносить передачу только новых файлов.