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

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

本文关键字:文件夹 传输 FTP Gulp      更新时间:2023-09-26

Gulp与乙烯基ftp:如何指定不同的目录名?我正在使用带有gump的乙烯基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/' ) );
} );

正如你所看到的,我试图通过瞄准'./dist/**'来只获取dist/的内容,但在传输完成后,我得到的路径是:/www/dist/

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

您对如何将本地dist/文件夹的内容转移到远程www/文件夹有什么想法吗?

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

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

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