gulp watch仅在首次运行时有效

gulp watch仅在首次运行时有效,gulp,gulp-watch,Gulp,Gulp Watch,我做什么? 运行gulp(正在处理SCSS文件,我得到一个CSS文件) 我再次更改任何SCSS文件 期望值: $ gulp [09:24:28] Using gulpfile c:\Users\User\_dev\github\project\gulpfile.js [09:24:28] Starting 'sass'... [09:24:28] Finished 'sass' after 98 ms [09:24:28] Starting 'default'... [09:24:28] Fin

我做什么?

  • 运行
    gulp
    (正在处理SCSS文件,我得到一个CSS文件)
  • 我再次更改任何SCSS文件
  • 期望值:

    $ gulp
    [09:24:28] Using gulpfile c:\Users\User\_dev\github\project\gulpfile.js
    [09:24:28] Starting 'sass'...
    [09:24:28] Finished 'sass' after 98 ms
    [09:24:28] Starting 'default'...
    [09:24:28] Finished 'default' after 7.31 μs
    [09:24:35] sass-watch saw _base.scss was changed
    [09:25:39] sass-watch saw _base.scss was changed
    
    gulp.task('sass', function() {
        watch({ glob: 'css/**/*.{scss,sass}', name: 'sass-watch'})
            .pipe(plumber())
            .pipe(sass())
            .pipe(gulp.dest('css'))
    });
    
    gulp.task('default', ['sass']);
    
    • 来自1的CSS文件。将使用2中的更改进行更新
    发生了什么事?

    • 来自1的CSS文件。没有改变
    命令行输出:

    $ gulp
    [09:24:28] Using gulpfile c:\Users\User\_dev\github\project\gulpfile.js
    [09:24:28] Starting 'sass'...
    [09:24:28] Finished 'sass' after 98 ms
    [09:24:28] Starting 'default'...
    [09:24:28] Finished 'default' after 7.31 μs
    [09:24:35] sass-watch saw _base.scss was changed
    [09:25:39] sass-watch saw _base.scss was changed
    
    gulp.task('sass', function() {
        watch({ glob: 'css/**/*.{scss,sass}', name: 'sass-watch'})
            .pipe(plumber())
            .pipe(sass())
            .pipe(gulp.dest('css'))
    });
    
    gulp.task('default', ['sass']);
    
    gulpfile.js:

    $ gulp
    [09:24:28] Using gulpfile c:\Users\User\_dev\github\project\gulpfile.js
    [09:24:28] Starting 'sass'...
    [09:24:28] Finished 'sass' after 98 ms
    [09:24:28] Starting 'default'...
    [09:24:28] Finished 'default' after 7.31 μs
    [09:24:35] sass-watch saw _base.scss was changed
    [09:25:39] sass-watch saw _base.scss was changed
    
    gulp.task('sass', function() {
        watch({ glob: 'css/**/*.{scss,sass}', name: 'sass-watch'})
            .pipe(plumber())
            .pipe(sass())
            .pipe(gulp.dest('css'))
    });
    
    gulp.task('default', ['sass']);
    
    注:

    • 关于GitHub(要点)
    • 操作系统:Win7
    • 节点:0.10.29
    • 净现值:1.4.14

    源文件的管道导入方式并不重要。使用
    gulp.src()

    时,结果保持不变。我认为您的sass任务编写不正确

    试着这样做:

    var gulp = require('gulp');
    var sass = require('gulp-sass')
    
    gulp.task('sass', function () {
        gulp.src('PATH-TO-SASS-FILES/*.scss')
            .pipe(sass())
            .pipe(gulp.dest('./css'));
    });
    

    请阅读
    gulpwatch
    插件及其语法。我试过使用
    .src()
    ,我试过只使用
    .sass()
    。使用插件
    gulp watch
    或使用内置
    gulp.watch
    时,问题完全相同。