Gulp将ftp部署到生产环境

时间:2016-07-14 09:50:26

标签: javascript gulp gulp-ftp vinyl-ftp

我正在使用一些gulp任务部署到生产,但我有gulp-deploy的问题,我需要一些其他文件从其他文件夹复制到服务器上的不同位置这是我的任务

//Gulp APP ftp deploy
gulp.task('deploy-app', function () {

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

    var globs = [
        './css/**/*{css,png,jpg,gif,ttf,woff,eof,svg,woff2}',
        './img/**',
        './views/**',
        './scripts/**',
        'index.html',
        'Web.config'
    ];

    // using base = '.' will transfer everything to /public_html correctly 
    // turn off buffering in gulp.src for best performance 

    return gulp.src(globs, { base: '.', buffer: false })
        .pipe(conn.newer('/site/wwwroot')) // only upload newer files 
        .pipe(conn.dest('/site/wwwroot'));

});

我在这里遇到的问题是我不需要root的 index.html ,因为我在文件夹 dist中有另一个 index.html 但它必须进入服务器文件夹的根目录,如何做到

1 个答案:

答案 0 :(得分:1)

gulp-ifgulp-rename结合使用,只更改index.html文件的目标目录,而不会影响任何其他文件:

var gulpIf = require('gulp-if');
var rename = require('gulp-rename');

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

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

    var globs = [
        './css/**/*{css,png,jpg,gif,ttf,woff,eof,svg,woff2}',
        './img/**',
        './views/**',
        './scripts/**',
        './dist/index.html',
        'Web.config'
    ];

    return gulp.src(globs, { base: '.', buffer: false })
        .pipe(gulpIf('dist/index.html', rename({dirname:''})))
        .pipe(conn.newer('/site/wwwroot')) 
        .pipe(conn.dest('/site/wwwroot'));
});