Gulp 4观察者正在运行,但没有检测到变化

时间:2015-11-10 09:14:55

标签: gulp watch

我有以下文件结构:

/ src
  -- app.less
/ gulp
  -- index.js
-- gulpfile.js

此文件结构安装在/ vagrant中的vagrant框中,这意味着app.less的路径变为/vagrant/src/app.less。 是的,我已经检查了这个。

gulpfile.js

require('./gulp');

index.js

var paths = {
    less: '/vagrant/src/app.less'
};

gulp.task('less', function () {
    console.log('less function running');

    return gulp.src(paths.less)
        .pipe(less());
});

gulp.task('watch:styles', function () {
    console.log('watch function running');

    gulp.watch(paths.less, gulp.series('less'));
});

gulp.task('watch', gulp.parallel('watch:styles'));

gulp -v 返回:

[10:02:05] CLI version 0.4.0
[10:02:05] Local version 4.0.0-alpha.1

gulp watch 返回:

[09:45:20] Using gulpfile /vagrant/gulpfile.js
[09:45:20] Starting 'watch'...
[09:45:20] Starting 'watch:styles'...
watch function running

我已经使用Gulp 4超过2个月而没有看到观察者的问题。从上周开始,观察者没有响应正在更改的文件。我尝试了几个编辑器,我尝试了多个路径,如'/vagrant/**/*.less'和'../src/*.less',甚至是app.less'/ vagrant / src的绝对路径/app.less',他们都没有工作。

经过一番研究后,我在Gulp 4的github回购中发现了几个关于观察者的问题。然而,我无法弄清楚问题是什么。也许我忽略了我的代码中的错误或文档中的新内容,但我试图解决这个问题,因为昨天早上没有任何运气。

1 个答案:

答案 0 :(得分:1)

看来你正在使用Vagrant。如果您在Vagrant计算机上而不是在主机上运行Gulp,它将不会检测您在主机上创建的文件的任何更改。这是因为通知操作系统有关文件系统更改的事件不会传播到VM中。

如果是这种情况,解决方案是只需在实际更改文件的任何地方运行Gulp(即,如果您在VM上进行更改,在VM上运行它,如果您在主机上进行更改,则运行吞了主持人。)

也可以使路径相对,而不是将您的实现绑定到您的Vagrant框。即less: './src/app.less'