FTP到Azure WebApp的Gulp脚本失败并且' getaddrinfo ENOTFOUND'

时间:2017-05-01 23:53:39

标签: azure ftp gulp azure-web-app-service gulp-ftp

我试图整理一个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;
    })
  );
});

我已经使用FileZilla检查了FTP的凭据,它运行正常。 (我使用here方法提取它们。

手表似乎工作正常,但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 个答案:

答案 0 :(得分:2)

好吧,gulp-ftp确实说它已被弃用而不是vinyl-ftp,尽管这不是你的问题。我会删除" ftp://"从你的主机价值(如果它在那里)看到它是否更好。

这是一个关于使用vinyl-ftp using gulp with vinyl-ftp的非常好的博客。 vinyl-ftp也可以很好地处理新文件。

答案 1 :(得分:1)

  • 正如@Mark指出的那样,请先从主机值中删除“ftp://”。

  • 然后你还需要将用户值中的“\”加倍(例如:“someapp \\ someuser”)。请参阅Vinyl-ftp strange error