Node.js 吞咽乙烯基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

乙烯基ftp的
软件包有一个功能,但我不知道如何正确使用它。我需要:

  • 从我的
    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用户的)