2016-10-04 9 views
1

나는 내 gulpfile.js를 끝내려고하고 있지만 나는 "꿀꺽 꿀꺽히는 시계"에 문제가 있습니다. 감시자를 실행하도록 설정하면 변경된 작업을 감지하고 할당 된 작업을 한 번만 실행합니다. 파일의 다음 변경 사항으로 더 이상 작업이 트리거되지 않습니다. 왜 그런지 모르지만 내 감시자는 단 한번만 작동합니다.깡패 시계는 한 번만 실행됩니다.

저는 감시자가 트리거 한 작업이 완료되었음을 깨닫지 못하고 있다고 생각합니다. 또는, 어쩌면 같은 gulpfile에 정의 된 다른 작업입니다 'deletarMainMin', 'agruparJS', 'agruparCSS'

var 
    gulp = require('gulp'), 
    plugins = require('gulp-load-plugins')({ 
    DEBUG: true 
    }); 
plugins.runSequence = require('run-sequence'); 

gulp.task('watch',function(){ 
    gulp.watch('public/**/*.+(css|js)',['buildEspecifico']); 
}); 

gulp.task('buildEspecifico',function(callback){ 
    return plugins.runSequence(
    ['deletarMainMin'], 
    ['agruparJS','agruparCSS'] 
); 
}); 

... 게으른로드를 처리하거나 실행 시퀀스를 플러그인 내가 사용하는 뭔가.

미리 감사드립니다.

건배,

Fabio.

답변

2

저는 감시자가 트리거 한 작업이 완료되었음을 깨닫지 못하고 있다고 생각합니다.

네, 바로 그 것입니다. buildEspecifico 작업에서는 callback을 수락합니다. 즉, 꿀꺽 꿀꺽하게 굴지 않으면 작업을 완료 한 것으로 간주하지 않습니다.

callback을 호출하지 않으므로 buildEspecifico 작업이 실행되면 실제로는 완료되지 않습니다. 그리고 buildEspecifico 작업이 기술적으로 여전히 꿀꺽 꿀꺽하기 때문에 파일이 변경 될 때 작업을 다시 시작하지 않습니다.

용액은 callback에서 runSequence으로 전달되어야한다. 시퀀스의 모든 작업이 완료되면 callback이 호출됩니다.

gulp.task('buildEspecifico',function(callback){ 
    return plugins.runSequence(
    ['deletarMainMin'], 
    ['agruparJS','agruparCSS'], 
    callback 
); 
}); 

또는 당신은 단지 모두 콜백 생략 할 수 있습니다 : 당신이 있는지 확인해야 분명히

gulp.task('buildEspecifico',function(){ 
    return plugins.runSequence(
    ['deletarMainMin'], 
    ['agruparJS','agruparCSS'] 
); 
}); 

을 그 작업 deletarMainMin, agruparJS, agruparCSS 스스로 마무리, 그래서 하나 전화 또는 callback을두고 그 일들에서도.

+0

안녕하세요 @ 스벤! 도움을 많이 주셔서 감사합니다. 순서대로 작업을 올바르게 실행해야하므로 해당 콜백을 제거 할 수 없습니다. 콜백을 시퀀스에 추가하고 어떤 일이 일어나는지 보도록하겠습니다. 여기 몇 분 안에 스레드를 업데이트합니다. – FTM

+0

안녕하세요, @ Sven, 해결되지 않았습니다. 어떤 일이 일어 났는지는 내가 변경 한 후에 작업이 무한 루프에서 실행되기 시작한 것입니다. 관측자가''buildEspecifico ''를 여러 번 호출하는 것과 같습니다. – FTM

+0

콜백 제거를 시도 할 때도 같은 일이 발생했습니다. 당직자는 그 일을 멈추지 않고 계속해서 부르고있었습니다. – FTM