Gulp在gulp.watch期间无法更新css文件

时间:2014-05-21 20:07:45

标签: gulp

我有一个奇怪的问题,我无法弄清楚gulp。

我有一个gulp-sass的任务。当我更改任何我的.scss文件时,我希望它重新编译我的sass文件。很简单。

这是我的代码

吞掉任务

gulp.task('sass', function(){
  gulp.src('app/styles/app.scss')
    .pipe(sass({
        includePaths: require('node-bourbon').includePaths
    }))
    .pipe(gulp.dest('app/assets'));
});

吞掉手表

gulp.task('watch', function(){
   gulp.watch('app/styles/**/*.scss', ['sass']);

});

问题是。当我运行gulp观察它一切正常。如果我编辑.scss文件,它会再次运行该任务。但是,更改并未反映在呈现的.css文件中。

曲线球如果我按ctrl + c来停止gulp.watch循环,那么更改会反映在渲染的.css文件中

我想知道导致这种情况发生的原因。

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

我遇到了这个问题,为我解决的问题是我在终端的错误目录中。一旦我cd到包含gulp文件的目录,一切都很好,并检测到更改。

答案 1 :(得分:2)

我使用PHPStorm遇到了这个问题。这是我的第一个gulpfile,我只是在试验虚拟的html,js和css,并查看IDE中生成的代码。我的代码在观看活动后从未更新过!

最后,我实际上在浏览器中加载了网站...

当您在浏览器中查看 文件时,会更新,但由于某种原因,它们不会被IDE编入索引。

答案 2 :(得分:1)

回调必须是函数,而不是任务名称数组。尝试:

gulp.task('watch', function(){
  watch('js/*/.js', function() {
    gulp.start('scripts');
  });
});

您需要检查源目录,或者需要更新依赖项。见相关讨论

检查此主题:https://github.com/floatdrop/gulp-watch/issues/214#issuecomment-171282193