Gulp和FTP:如何只传输文件夹的内容?

lap*_*pin 3 javascript node.js coffeescript gulp

用乙烯基ftp gulp:如何指定不同的目录名?我正在使用带有gulp的vinyl-ftp将我的本地dist/目录推送到远程生产服务器.

事情是我当地的准备生产目录名称是" dist",我希望它的所有内容都被推送到www服务器上的" "目录中.

代码是:

gulp.task( 'deploy:prod', ['build:dist'], function() {

    var conn = ftp.create( {
        host:     'ftp.website.com',
        user:     'username',
        password: 'password'
    } );

    var globs = ['./dist/**'];

    return gulp.src( globs, {base: '.', buffer: false } )
        .pipe( conn.differentSize( 'www/' ) ) 
        .pipe( conn.dest( 'www/' ) );
} );
Run Code Online (Sandbox Code Playgroud)

如你所见,我试图仅dist/通过定位来获取内容'./dist/**',但在传输完成后,我得到的路径是:/www/dist/.

一种解决方法是将我的" dist/"文件夹重命名为" www/",然后将乙烯基ftp的目标设置为服务器ROOT,但我更喜欢将关注点分开,并dist/为我的本地构建保留名称" ".

您对如何将本地dist/文件夹的内容传输到远程www/文件夹有任何想法吗?

ddp*_*rrt 8

尝试将您设置base./dist/:

return gulp.src( globs, {base: './dist/', buffer: false } )
    .pipe( conn.differentSize( 'www/' ) ) 
    .pipe( conn.dest( 'www/' ) );
Run Code Online (Sandbox Code Playgroud)

根据API文档和一些模糊的记忆,这个标志恰好就是这种情况.