首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在Gulp/Vinyl-ftp上传bootstrap.min.css之前,我必须保存更少的源文件两次?

为什么在Gulp/Vinyl-ftp上传bootstrap.min.css之前,我必须保存更少的源文件两次?
EN

Stack Overflow用户
提问于 2017-07-18 16:09:04
回答 1查看 85关注 0票数 0

我有一个包含以下内容的gulpfile.js。我希望它生成bootstrap.min.css,并在/less文件夹中保存较少的文件后立即将其上传到服务器。问题是:只有在保存文件两次之后,才能上传最终结果。我想我做错了什么。

下面是我使用的代码:

代码语言:javascript
复制
    var gulp = require ('gulp'),
    //cleanCSS = require('gulp-clean-css'),
    autoprefixer = require('gulp-autoprefixer'),
    less = require('gulp-less'),
    plumber = require('gulp-plumber'),
    sourcemaps = require('gulp-sourcemaps'),
    rename = require('gulp-rename'),
    gutil = require('gulp-util'),
    ftp = require ('vinyl-ftp');


// Styles Task using LESS
// Uglifies
gulp.task('less', function(){
    gulp.src('../less/bootstrap.less')
    .pipe(plumber())
    .pipe(less())
    .pipe(autoprefixer({}))
    .pipe(sourcemaps.init())
    .pipe(rename({suffix: '.min'}))
    .pipe(sourcemaps.write('.'))
    .pipe(gulp.dest('../css/'));
});

    // Vinyl FTP 
    gulp.task( 'deploy', function () {

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

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



        return gulp.src( globs, { base: '.', buffer: false } )
            .pipe( conn.newer( '/public_html/[folder/on/server]/css/' ) ) // only upload newer files
            .pipe( conn.dest( '/public_html/[folder/on/server]/css/' ) );

    } );
// Watch Task
// Watches JS
gulp.task('watch', function(){
    gulp.watch('../less/**/*.less', ['less','deploy']);
});

gulp.task ('default', ['less','deploy','watch']);

因为我不是javascript/npm/gulp/node.js专家,所以我不知所措。我需要两次保存较少的文件,这让我很苦恼。有人能识别错误吗?如果您需要更多的信息,请随时询问。

萨克斯

Thom

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-18 18:21:57

你有两个可能的问题:

  1. 在你的“较少”任务中放一个回报,这样你就会知道它已经完成了。
  2. 您不能在“监视”任务中假设“较少”、“部署”按任何特定顺序运行/完成。它们是并行运行的,因此顺序可能会有所不同。“默认”任务也是如此。

最好使您的“部署”任务依赖于“较少”任务ala。

代码语言:javascript
复制
gulp.task( 'deploy', ['less'], function () {

并改变为

代码语言:javascript
复制
 gulp.watch('../less/**/*.less', ['deploy']);


// Styles Task using LESS
// Uglifies
gulp.task('less', function(){
// add the return to the next line
  return gulp.src('../less/bootstrap.less')
  .pipe(plumber())
  .pipe(less())
  .pipe(autoprefixer({}))
  .pipe(sourcemaps.init())
  .pipe(rename({suffix: '.min'}))
  .pipe(sourcemaps.write('.'))
  .pipe(gulp.dest('../css/'));
});

// Watch Task
// Watches JS
gulp.task('watch', function(){
  gulp.watch('../less/**/*.less', ['deploy']);
});

// Vinyl FTP 
gulp.task( 'deploy', ['less'], function () {

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

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

    return gulp.src( globs, { base: '.', buffer: false } )
        .pipe( conn.newer( '/public_html/[folder/on/server]/css/' ) ) // only upload newer files
        .pipe( conn.dest( '/public_html/[folder/on/server]/css/' ) );

} );
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45172081

复制
相关文章

相似问题

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