source

Gulp.js 작업, src로 돌아옵니까?

ittop 2023. 8. 5. 10:59
반응형

Gulp.js 작업, src로 돌아옵니까?

저는 침을 삼키는 것이 처음이고 예시적인 설정을 살펴보고 있습니다.어떤 사람들은 다음과 같은 구조를 가지고 있습니다.

gulp.task("XXXX", function() {
    gulp.src("....

다른 사용자는 다음과 같습니다.

gulp.task("XXXX", function() {
   return gulp.src("....

저는 src의 반품이 어떤 차이가 있는지 궁금합니다.

return작업이 비동기임을 나타냅니다.gulp.src()스트림을 반환하므로 비동기입니다.

이것이 없으면 작업 시스템은 언제 완료되었는지 알 수 없습니다.문서를 읽습니다.

종속 태스크가 있는 경우 스트림을 반환하여 태스크가 실행되기 전에 종속 태스크가 완료될 때까지 기다려야 합니다.

예를 들어

// without return
gulp.task('task1', function() {
    gulp.src('src/coffee/*.coffee')
      /* eg compile coffeescript here */
     .pipe(gulp.dest('src'));
});

gulp.task('task2', ['task1'], function() {
    gulp.src('src/*.js')
      /* eg minfify js here */
     .pipe(gulp.dest('dest'));
});

이 예에서는 task2가 실행되기 task1이 완료될 것으로 예상합니다(예: 커피 스크립트 컴파일 또는 기타).그러나 아래 예제와 같이 반환을 추가하지 않으면 비동기적으로 실행되지 않으며, task2가 task1이 완료될 때까지 기다리지 않아 task1의 컴파일된 출력을 받지 못하기 때문에 컴파일된 커피 스크립트는 축소되지 않습니다.그래서 우리는 항상 이러한 상황에서 돌아와야 합니다.

// with return
gulp.task('task1', function() {
    return gulp.src('**/*.coffee')
      /* your operations here */
     .pipe(gulp.dest('dest'));
});

gulp.task('task2', ['task1'], function() {
    return gulp.src('**/*.js')
      /* your operations here */
     .pipe(gulp.dest('dest'));
});

편집: 여기 레시피가 더 설명해 줍니다.https://github.com/gulpjs/gulp/blob/master/docs/recipes/running-tasks-in-series.md

작업당 여러 개의 스트림이 있는 경우 이 기능이 유용하다는 것을 알게 되었습니다.여러 스트림을 결합/합병하여 반환해야 합니다.

var gulp = require('gulp');
var merge = require('gulp-merge');

gulp.task('test', function() {
    var bootstrap = gulp.src('bootstrap/js/*.js')
        .pipe(gulp.dest('public/bootstrap'));

    var jquery = gulp.src('jquery.cookie/jquery.cookie.js')
        .pipe(gulp.dest('public/jquery'));

    return merge(bootstrap, jquery);
});

Gulps 작업 정의 구조를 사용하는 대안은 다음과 같습니다.

var gulp = require('gulp');

gulp.task('bootstrap', function() {
    return gulp.src('bootstrap/js/*.js')
        .pipe(gulp.dest('public/bootstrap'));
});

gulp.task('jquery', function() {
    return gulp.src('jquery.cookie/jquery.cookie.js')
        .pipe(gulp.dest('public/jquery'));
});

gulp.task('test', ['bootstrap', 'jquery']);

언급URL : https://stackoverflow.com/questions/21699146/gulp-js-task-return-on-src

반응형