首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有自动更新/自动生成文件的无限监视循环

具有自动更新/自动生成文件的无限监视循环
EN

Stack Overflow用户
提问于 2015-10-24 17:00:22
回答 1查看 216关注 0票数 2

我正在尝试使用一些gulp ( jscscsscomb )在开发时动态地对我的代码进行样式化。

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

我相信会发生什么:

  • 启动某种类型的serve任务
  • 对所有任务执行初始运行,以便为暂存服务器准备文件。
  • 本地暂存服务器与监视任务并行启动。
  • myfile.scss由开发人员更新。
  • 守望者开始执行csscomb任务。
  • 修改文件并替换它。
  • 观察者任务会看到文件替换中的更改&再次启动格式化任务.
  • csscomb插件再次运行等等..。

下面是导致这个循环的一个片段。(注:这使用v4的gulp)

代码语言:javascript
复制
'use strict'

import { task, parallel, series, src, dest, watch, plugins } from './gulp';

import { startStagingServer } from './servers';

import { solution } from './solution.map';

const path = require('path');

task('serve', parallel(startStagingServer, watchStyles);

function watchStyles() {
  watch([ solution.src.styles ], series(formatStyles, compileStyles))
}

function formatStyles(done) {
  return src([ solution.src.styles ])
    .pipe(plugins.csscomb())
    .pipe(dest(solution.src.mount)) // the root of the solution
}

function compileStyles() {
  return src([ solution.src.styles ])
    .pipe(plugins.sass().on('error', plug.sass.logError))
    .pipe(dest(path.join(solution.dest.stage, 'serve')));
}

有谁知道避免这种情况的方法吗?

EN

回答 1

Stack Overflow用户

发布于 2015-11-18 15:58:12

避免这种情况的方法是不要把补丁放在观察者身上。使用两个单独的函数:一个修复函数,另一个没有。只注意不修复的函数。例如:

代码语言:javascript
复制
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));
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33320860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档