首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于Gulp配置的乙烯基FTP

用于Gulp配置的乙烯基FTP
EN

Stack Overflow用户
提问于 2017-06-01 21:00:32
回答 1查看 1.1K关注 0票数 1

我使用Gulp在文件保存时从LESS-CSS生成CSS。我想立即将css文件上传到服务器,所以我尝试使用Vinyl-FTP。我是NPM/NodeJS/Gulp/JavaScript的新手,所以我需要一些帮助。

在我的gulpfile.js中,我包含了以下代码(当然是隐藏主机、用户和密码):

代码语言:javascript
复制
// Vinyl FTP 
gulp.task( 'deploy', function () {

    var conn = ftp.create( {
        host:     'ftp-server',
        user:     'user',
        password: 'password',
        parallel: 10,
        log:      gutil.log
    } );

    var globs = [
        '../site/templates/templatename/css/bootstrap.min.css'
    ];


    return gulp.src( globs, { base: '.', buffer: false } )
        .pipe( conn.newer( '/public_html/dev2/templates/templatename/css' ) ) 
        .pipe( conn.dest( '/public_html/dev2/templates/templatename/css' ) );

} );

我想在每次点击“保存”时上传bootstrap.min.css文件。该文件位于相对于我的gulp目录的../site/templates/templatename/css/bootstrap.min.css。我希望它上传到我的开发网站,这是位于服务器上的/public_html/dev2/templates/templatename/css (是的,这是Joomla)。

显然,我使用了错误的路径,因为这就是它所产生的:

代码语言:javascript
复制
    [14:44:21] Using gulpfile /mnt/e/Sites/successfulspeakernow.com/gulp/gulpfile.js
[14:44:21] Starting 'less'...
[14:44:21] Finished 'less' after 20 ms
[14:44:21] Starting 'watch'...
[14:44:21] Finished 'watch' after 267 ms
[14:44:21] Starting 'deploy'...
[14:44:21] CONN 
[14:44:23] READY
[14:44:23] MLSD  /public_html/dev2/templates/templatename/site/templates/templatename/css
[14:44:23] MLSD  /public_html/dev2/templates/templatename/site/templates/templatename
[14:44:23] MLSD  /public_html/dev2/templates/templatename/site/templates
[14:44:23] MLSD  /public_html/dev2/templates/templatename/site
[14:44:23] MLSD  /public_html/dev2/templates/templatename
[14:44:23] MLSD  /public_html/dev2/templates
[14:44:23] MKDIR /public_html/dev2/templates/templatename/site
[14:44:23] MKDIR /public_html/dev2/templates/templatename/site/templates
[14:44:23] MKDIR /public_html/dev2/templates/templatename/site/templates/templatename
[14:44:23] MKDIR /public_html/dev2/templates/templatename/site/templates/templatename/css
[14:44:23] PUT   /public_html/dev2/templates/templatename/site/templates/templatename/css/bootstrap.min.css
[14:44:23] UP     37% /public_html/dev2/templates/templatename/site/templates/templatename/css/bootstrap.min.css
[14:44:23] UP     74% /public_html/dev2/templates/templatename/site/templates/templatename/css/bootstrap.min.css
[14:44:23] UP    100% /public_html/dev2/templates/templatename/site/templates/templatename/css/bootstrap.min.css
[14:44:23] Finished 'deploy' after 1.86 s
[14:44:23] Starting 'default'...
[14:44:23] Finished 'default' after 8.9 μs
[14:44:23] DISC 

当我用我的FTP程序去那里的时候,我发现:

代码语言:javascript
复制
/public_html/dev2/templates/templatename/site/templates/templatename/css/bootstrap.min.css

您能解释一下如何调整才能将bootstrap.min.css文件上传到服务器上的正确目录吗?

谢谢,

Thom

EN

回答 1

Stack Overflow用户

发布于 2017-06-09 04:55:05

我也有同样的问题。Vinylftp在目标文件夹中创建源文件夹结构。要避免这个问题,只需将目标更改为您的your服务器的根目录即可。我的代码有点不同,但它显示了问题所在。

代码语言:javascript
复制
var gulp = require('gulp');
var gutil = require( 'gulp-util' );
var ftp = require( 'vinyl-ftp' );

/** Configuration **/
var user = 'username';
var password = 'password';
var host = 'hostname';  
var port = 21;  
var localFilesGlob = ['public_html/templates/protostar/css/template.css'];  
var remoteFolder = ''; // <- HERE MUST BE AN EMPTY STRING TO POINT THE VINYLFTP TO ROOT


function getFtpConnection() {  
    return ftp.create({
        host: host,
        port: port,
        user: user,
        password: password,
        parallel: 5,
        log: gutil.log
    });
}

gulp.task('ftp-deploy', function() {

    var conn = getFtpConnection();

    return gulp.src(localFilesGlob, { base: '.', buffer: false })
        .pipe( conn.newer( remoteFolder ) ) // only upload newer files 
        .pipe( conn.dest( remoteFolder ) )
    ;
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44308257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档