javascript - 必须多次运行 gulp 才能获得样式更改

标签 javascript css sass gulp

我在编译我的 CSS 时遇到问题,当我在我的 SASS 文件中进行更改时,它不会更改最终文件,只是在尝试了不止一次之后。


    var gulp = require('gulp');
    var sass = require('gulp-sass');
    var rename = require('gulp-rename');
    var postcss = require('gulp-postcss');
    var autoprefixer = require('autoprefixer');
    var cssnano = require('cssnano');
    var concat = require('gulp-concat');
    var uglify = require('gulp-uglify');

    //CSS Tasks
    gulp.task('styles', function() {
        console.log("Compilling SASS");
        gulp.src('app/sass/style.scss')
        .pipe(sass().on('error', sass.logError))
        .pipe(postcss([ autoprefixer() ]))
        .pipe(rename('999_style.css'))
        .pipe(gulp.dest('app/css/'));
    });
    gulp.task('stylescompress', ['styles'], function() {
        console.log("Concating and moving all the css files in styles folder");
        gulp.src("app/css/**.css")
        .pipe(concat('style.css'))
        .pipe(postcss([ cssnano() ]))
        .pipe(gulp.dest('css/'));
    });

    //Javascript Tasks
    gulp.task('jscompress', function() {
        //console.log("Concating and moving all the js files in javascript folder");
        gulp.src("app/js/**.js")
        .pipe(concat('scripts.js'))
        .pipe(gulp.dest('js/'))
        .pipe(rename('scripts.min.js'))
        .pipe(uglify())
        .pipe(gulp.dest('js/'))
    });

    //Watch task
    gulp.task('default',function() {
        gulp.watch(['app/sass/**/*.scss'],['stylescompress'])
        .on('change', function(event) {
            console.log('SASS - File ' + event.path + ' was ' + event.type + ', running tasks...');
        });
        gulp.watch(['app/js/**/*.js'],['jscompress'])
        .on('change', function(event) {
            console.log('SCRIPTS - File ' + event.path + ' was ' + event.type + ', running tasks...');
        });
    });

如你所见,我根据Gulp Docs使用了all,但我并没有发现这是怎么回事。

最佳答案

我错过了它完成时的返回,让 Gulp 了解它应该调用下一个任务的时间,它记录在 Gulp Docs

我使用流让 gulp 理解每个任务何时结束,如下所示:

gulp.task('somename', function() {
  var stream = gulp.src('client/**/*.js')
    .pipe(minify())
    .pipe(gulp.dest('build'));
  return stream;
});

关于javascript - 必须多次运行 gulp 才能获得样式更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41554712/

相关文章:

node.js - SyntaxError : Block-scoped declarations (let, const, function, class) 在严格模式之外还不支持安装SASS Node 包

javascript - 隐藏文本然后重新显示时,它不会正确返回,它不会为出现的文本分配空间

Javascript使文本字段首字母大写,其余小写

javascript - 使用 php/javascript 制作 3 个从 MySQL 数据库填充的相关下拉菜单

javascript - 树递归: How to get the parent root of the selected tree node

html - 为什么 TD 上的 CSS 宽度会被视口(viewport)宽度覆盖?

css - box-shadow 属性的 none 和 initial 关键字之间的区别?

css - 如何在 IE 11 灰色中制作彩色图像

CSS 填充父级宽度

html - 绝对位置 div 垂直分布不均匀