【问题标题】:Gulp watch task for sass file doesn't watch the sass filesass 文件的 Gulp 监视任务不监视 sass 文件
【发布时间】:2020-09-25 05:58:54
【问题描述】:

我已经为 sass:watch 任务设置了所有必需的配置,但是当我开始调用 watch 任务时,它不会监视 sass 文件任务,因此不会将 sass 编译为 css 文件

这是我的 gulp 文件,

'use strict';

var gulp = require('gulp'),
    sass = require('gulp-sass'),
    browserSync = require('browser-sync');

    gulp.task('sass', function () {
        return gulp.src('./css/*.scss')
        .pipe(sass().on('error', sass.logError))
        .pipe(gulp.dest('./css'));
    });

    gulp.task('sass:watch', function () {
        gulp.watch('./css/*.scss', ['sass']);
    });

    gulp.task('browser-sync', function () {
        var files = [
            './*.html',
            './css/*.css',
            './img/*.{png,jpg,gif}',
            './js/*.js'
        ];

        browserSync.init(files, {
            server: {
            baseDir: "./"
            }
        });

    });

    // Default task
    gulp.task('default', gulp.series('browser-sync'), function() {
        gulp.start('sass:watch');
    });

默认任务有什么问题吗?

【问题讨论】:

    标签: sass gulp


    【解决方案1】:

    在这种情况下,请试试这个:

    gulp.task('default', gulp.parallel('browser-sync', 'sass:watch'));
    

    我想,通过“并行”,这些任务可以同时执行。

    【讨论】:

      【解决方案2】:

      是的,试试这个:

      // Default task
      gulp.task('default', gulp.series('browser-sync', 'sass:watch'));
      

      gulp.start 不能在 gulp v4 中工作。加上你的default 任务有三个参数,只允许两个。

      【讨论】:

      • sass:watch 任务仍然没有在看 sass 文件,同样的问题仍然悬而未决..请你详细解释一下。