2017-12-11 28 views
0

나는 내 프로젝트에서 찌르다를 사용하여 찌르다 관련 활동을하고있다. 나는 작업 중 하나가 내가 콘솔에서 오류가 실패 할 경우, 어떤 오류에서 꿀꺽 꿀꺽 거리는 소리가 들리는 과정을 멈추는 것

gulp.task('bundle-libs', bundlelibs); 
gulp.task('bundle-modules', bundle); 

/* build libs for production */ 
gulp.task('build:prod', function (done) { 
    runSequence('clean', ['styles', 'copy-assets'], 'compile', 'systemjs_config', 'prefix_routes', 'bundle-libs', done) 
}); 

/* create module bundles */ 
gulp.task('bundle', function (done) { 
    runSequence('copy-required-files', 'bundle-modules', done); 
}); 

하지만이에

을 다음과 같이 작업을해야하지만 빌드 프로세스가 계속됩니다. 내가 뭘하고 싶은지, 작업 중 하나가 실패하면, 나는 콘솔에 적절한 오류를 표시하고 빌드 프로세스를 중지하고 싶습니다. 즉, 후속 작업을 실행하고 싶지 않습니다. 이 일에 어떻게 가야합니까? 온라인으로 검색했지만 couldnt는 문제를 해결할 수있는 모든 것을 얻습니다. 도와주세요. 고맙습니다.

답변

1

처리하려는 오류의 유형에 따라 다릅니다. try-catch를 사용하여 예외를 처리 할 수있는 예외가 발생했습니다. catch 블록에 들어가서 남아있는 작업을 실행하지 않으려면 done 함수를 실행하지 않습니다. 예 :

function testTask(done) { 
    try { 
    return gulp.src('tmp/dist/*.html') 
      .pipe(gulp.dest('tmp/dist')); 
    } catch(error) { 
    const error_message = 'Error:: task failed. ' + error.name + ' : ' + error.message; 
    } 
} 

오류 콜백이면 여러 가지 방법으로 처리 할 수 ​​있습니다. 각 작업마다이 작업을 수행해야한다면 gulp plumber

+0

을 시도해 볼 수 있습니까? 만약 n 개의 함수가 있다면, 그것들을 모두 처리하는 방법이 있습니까 ?? –

+0

예, 오류를 catch하고 콜백을 실행하면 다른 작업이 시작될 수 있습니다. 이 일을하려고 할 때 이런 일이 일어났습니다. 콜백 전에는 시간이 걸리는 비동기 호출이 있었기 때문에. –