【问题标题】:Gulp automatically watch for changes in scss file without running gulp watch everytimeGulp 自动监视 scss 文件中的更改,而无需每次都运行 gulp watch
【发布时间】:2019-02-17 08:14:59
【问题描述】:

我是这个网站的新手,并且大吃一惊。

我有 2 个文件 - sass/styles.scss 编译为 ma​​in/styles.css

问题在于它不会像它应该自动执行的那样监视更改。它应该在我保存时将 scss 编译为 css。

现在,每次我做出压力很大的改变时,我都必须运行 gulp watch

gulpfile.js

var gulp = require('gulp'); 
var sass = require('gulp-sass');

gulp.task('sass', function(){
return gulp.src('css/sass/styles.scss')
  .pipe(sass()) // Converts Sass to CSS with gulp-sass
  .pipe(gulp.dest('css/main'))
  });

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

终端

[19:37:02] Starting 'watch'...
[19:37:02] Starting 'images'...
[19:37:04] gulp-imagemin: Minified 0 images
[19:37:04] Finished 'images' after 2.49 s
[19:37:04] Starting 'sass'...
[19:37:04] Finished 'sass' after 20 ms
[19:37:04] Finished 'watch' after 2.52 s

我想让这个过程自动进行,而不是每次更改 sass 文件时都运行 gulp watch

【问题讨论】:

    标签: javascript gulp


    【解决方案1】:

    你的手表指令的功能应该在gulp.series

    gulp.task('watch', gulp.series('images', 'sass', function() {
        gulp.watch('images/**', gulp.series('images'));
        gulp.watch('css/sass/**/*.scss', gulp.series('sass'));
      })
    );
    

    由于'images''sass' 任务可能彼此独立,您可以这样做

    gulp.series(gulp.parallel('images', 'sass'), function() {...})
    

    或探索ignoreInitial 选项。

    【讨论】:

    • 试过了,但还是不行。每次我做出改变时都必须运行 gulp watch。
    • 请注意,我做了两处更改:1) gulp.series('images', 'sass'), function () {} => gulp.series('images', 'sass', function () {} ) 2) gulp.watch('images/**', ['images']) => gulp.watch('images/**', gulp.series('images'));
    猜你喜欢
    • 1970-01-01
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 2019-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多