2017-06-29 60 views
2

我的代码:咕嘟咕嘟 - 基本CONCAT /缩小犯规输出文件

var gulp = require('gulp'), 
    concat = require('gulp-concat'), 
    minify = require('gulp-minify-css'); 

gulp.task('css', function() { 
    var styles = [ 
     'node_modules/sweetalert/dist/sweetalert.css' 
    ]; 

    return 
     gulp.src(styles) 
     .pipe(minify()) 
     .pipe(concat('libs.min.css')) 
     .pipe(gulp.dest('public/assets/css')); 
}); 

环境:

  • 源文件存在。
  • 输出目录存在且可写。
  • 输出干净,没有错误。

控制台输出:

[email protected]:/var/www/test# gulp css 
[12:51:27] Using gulpfile /var/www/test/gulpfile.js 
[12:51:27] Starting 'css'...` 
[12:51:27] Finished 'css' after 582ms 

这不输出任何CSS。

出了什么问题?

== ==编辑

发现问题就在这里:

// This doesn't work 
return 
    gulp.src(styles) 
    .pipe(minify()) 
    .pipe(concat('libs.min.css')) 
    .pipe(gulp.dest('public/assets/css')); 

// This works 
return gulp.src(styles) 
    .pipe(minify()) 
    .pipe(concat('libs.min.css')) 
    .pipe(gulp.dest('public/assets/css')); 

任何人都可以解释,为什么?

回答

1

JavaScript执行自动分号插入。所以这个:

return 
    gulp.src(styles) 
    .pipe(minify()) 
    .pipe(concat('libs.min.css')) 
    .pipe(gulp.dest('public/assets/css')); 

转化成这样:

return; // <-- Nothing after this is executed! 
    gulp.src(styles) 
    .pipe(minify()) 
    .pipe(concat('libs.min.css')) 
    .pipe(gulp.dest('public/assets/css')); 

欲了解更多信息,请参阅Beware Of JavaScript Semicolon Insertion