我正在尝试使用一些 gulp 插件(jscs
, csscomb
)在开发期间动态设置我的代码样式。
我在使用格式任务运行无限循环的 gulp 进程时遇到问题。
我相信会发生什么:
- 开始某种
serve
任务 - 对所有任务执行初始运行,为登台服务器准备文件
- 本地登台服务器与监视任务并行启动
myfile.scss
由开发人员更新- gulp watcher 启动 csscomb 任务
- csscomb 插件更改文件并替换它
- 观察者任务看到文件替换的变化并再次启动格式化任务......
- csscomb 插件再次运行等等......
这是导致此循环的片段。(注意:这使用 v4 的 gulp)
'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')));
}
有谁知道避免这种情况的方法?