无限观察循环,自动更新/自动生成文件

时间:2015-10-24 17:00:23

标签: gulp infinite-loop gulp-watch jscs gulp-jscs

我正在尝试使用一些gulp插件(NSURL *url; #ifdef DEBUG // want to use this variable on DEBUG build url = [NSURL URLWithString:@"http://localhost:3000/api/"]; #endif // want to use this variable on RELEASE build url = [NSURL URLWithString:@"http://example.com/api/"]; jscs)来在开发时动态设置我的代码。

我遇到了使用格式任务运行无限循环的gulp进程的问题。

我相信会发生什么:

  • 启动csscomb某种任务
  • 执行初始运行,并为登台服务器准备文件的所有任务
  • 本地登台服务器与监视任务并行启动
  • serve由开发人员更新
  • gulp观察者启动csscomb任务
  • csscomb插件更改文件并替换它
  • 观察者任务看到文件替换的变化&再次启动格式任务 ...
  • csscomb插件再次运行,依此类推......

这是导致此循环的代码段。 (注意:这使用了g4的v4)

myfile.scss

有没有人知道避免这种情况的方法?

1 个答案:

答案 0 :(得分:0)

避免这种情况的方法不是将修复程序放在观察者中。使用2个单独的函数:一个修复,另一个不修复。只看那个没有的。例如:

function taskJscsFix() {
    return gulp.src(path.JS)
        .pipe(jscs({
            configPath: './gulp/.jscsrc',
            fix: true
        }))
        .pipe(gulp.dest(path.SRC.JS));
}

function taskScripts() {
    return gulp.src(path.JS)
        .pipe(jscs({
            configPath: './gulp/.jscsrc'
        }))
        .pipe(jscs.reporter())
        .pipe(gulp.dest(path.DEST.JS));
}