Gulp and FTP : 如何只传输一个文件夹的内容?

Gulp and FTP : How to transfer only the content of a folder?

Gulp with vinyl ftp : 如何指定不同的目录名称? 我正在使用 vinyl-ftp 和 gulp 将本地 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/' ) );
} );

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

一种解决方法是将我的“dist/”文件夹重命名为“www/”,然后将 vinyl ftp 的目标设置为服务器 ROOT,但我更愿意将关注点分开并为我的本地构建保留名称“dist/”。

关于如何将本地 dist/ 文件夹的内容传输到远程 www/ 文件夹,您有什么想法吗?

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

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

根据 the API documentation 和一些模糊的记忆,这个标志正是针对这种情况。