在gulp中的另一个任务中使用创建的文件

在gulp中的另一个任务中使用创建的文件,gulp,Gulp,我正在尝试为以下操作设置一个小的吞咽脚本: 将所有Javascript文件连接成一个 这是一个构建的Javascript文件 将所有SASS文件编译为CSS 缩小这些CSS文件 此外,我想将步骤1和步骤3的结果保存到一个文件夹(开发人员版本),并将步骤2和步骤4的结果保存到另一个文件夹(生产版本)。 问题是,gulp在第2步和第4步中似乎找不到生成的文件,因此它总是根据文件的旧版本生成文件。 这个问题的解决方法是总是运行我的gulp脚本两次。 有人知道为什么会这样吗?我如何解决这个问题 var

我正在尝试为以下操作设置一个小的吞咽脚本:

  • 将所有Javascript文件连接成一个
  • 这是一个构建的Javascript文件
  • 将所有SASS文件编译为CSS
  • 缩小这些CSS文件
  • 此外,我想将步骤1和步骤3的结果保存到一个文件夹(开发人员版本),并将步骤2和步骤4的结果保存到另一个文件夹(生产版本)。 问题是,gulp在第2步和第4步中似乎找不到生成的文件,因此它总是根据文件的旧版本生成文件。 这个问题的解决方法是总是运行我的gulp脚本两次。 有人知道为什么会这样吗?我如何解决这个问题

    var gulp = require('gulp');
    var plumber = require('gulp-plumber');
    var concat = require('gulp-concat');
    var minifyCSS = require('gulp-minify-css');
    var uglify = require('gulp-uglify');
    var sass = require('gulp-sass');
    
    var DEV_JS = 'dev/js/*.js';
    var DEV_SASS = 'dev/sass/*scss';
    var BUILT_PROD_JS = 'built/prod/js';
    var BUILT_PROD_CSS = 'built/prod/css';
    var BUILT_DEV_JS = 'built/dev/js';
    var BUILT_DEV_CSS = 'built/dev/css';
    
    gulp.task('concat', function(){
        gulp.src(DEV_JS)
        .pipe(plumber())
        .pipe(concat('simple-ui.js'))
        .pipe(gulp.dest(BUILT_DEV_JS));
    });
    
    gulp.task('compress',['concat'], function(){
        return gulp.src(BUILT_DEV_JS + '/*.js')
        .pipe(plumber())
        .pipe(uglify())
        .pipe(gulp.dest(BUILT_PROD_JS));
    });
    
    gulp.task('sass', function(){
        gulp.src(DEV_SASS)
        .pipe(plumber())
        .pipe(sass())
        .pipe(gulp.dest(BUILT_DEV_CSS));
    });
    
    gulp.task('minify-css',['sass'], function(){
        return gulp.src(BUILT_DEV_CSS + '/*.css')
        .pipe(plumber())
        .pipe(minifyCSS({keepSpecialComments: 1})
        .pipe(gulp.dest(BUILT_PROD_CSS)));
    });
    
    gulp.task('default', ['compress', 'minify-css']);
    

    我会在你的代码中修正两件事。首先,所有任务都应该有返回语句(一种表示它们已完成其他任务的方式),因此

    第二,你似乎在这一行有一个输入错误:

    var DEV_SASS = 'dev/sass/*scss';
    
    改为:

    var DEV_SASS = 'dev/sass/*.scss';
    

    我要做的第一件事是将返回语句添加到“concat”和“sass”任务中;我想你需要*.scss在scss之前记下perion。
    var DEV_SASS = 'dev/sass/*.scss';