2014-05-25 3 views
5

특정 파일에 대한 빌드 작업을 적용해야합니다. 그 (것)들을 찾아 내기 위하여, 나는 전형적인 템플렛을 사용한다. 하지만 gulp.src에서 인수 (파일 경로)를 전달하는 방법을 이해할 수 없습니다.params로 Gulp 작업을 시작하는 방법은 무엇입니까?

바람직한 해결책.

gulp.task('bundles', function() { 
    gulp.src('bundles/**/*.js'). 
    pipe(gulp.start('build', file.path)); 
}); 

gulp.task('build', function (path) { 
    // use here 
}); 

답변

1

질문은 조금 오래된이고 나는 완전히 당신이 달성하려고하는지 이해가 잘 모르겠지만, 난 당신이 찾고있는 무슨 생각 인 경우에 당신은 당신의 질문을 명확히 할 수 있습니다 lazypipe

입니다 하지 당신이

사용 예제를 찾고 : 당신은 기본적으로 나중에 사용하기 위해 파이프를 만들 lazypipe

var lazypipe = require('lazypipe'), 
g = require('gulp-load-plugins')({lazy: true}), 

jsTransformPipe = lazypipe() 
    .pipe(g.jshint) // <-- Notice the notation: g.jshint, not g.jshint() 
    .pipe(g.concat, 'bundle.js'), // <-- Notice how the param is passed to g.concat, as a second param to .pipe() 

jsSourcePipe = lazypipe() 
    .pipe(gulp.src, './**/*.js'); 

gulp.task('bundle', function() { 
    jsSourcePipe() 
     .pipe(jsTransformPipe()) // <-- You execute the lazypipe by calling it as a function 
     .pipe(gulp.dest('../build/'); 
}); 

; 이 도움을 희망하십시오

1

내가 샘플 코드가 모든 것을 작성되지 가정,하지만하지 않는 이유 당신이 그 작업을 병합하고 gulp.src를 사용

을 (때문에 담당자의 의견을 유감 할 수 없습니다)() 다른 작업을 호출하는 대신 빌드 작업에서.

는 아마 당신을 위해 유용하지만 나는이 작업을 수행하는 대신 단순히 같은으로가는 이유에 대한 설명을 찾을 수 없습니다 보여주는하는지와 : 물론

gulp.task('build', function (path) { 
    gulp.src('bundles/**/*.js) 
    //Your code for this task 
}); 

를, 그것은 번들을 제거 작업이지만 유용하지는 않습니다. 내가 틀렸다면 주저하지 말고 최대한 많이 도와 드리겠습니다.

0

첫째로, gulp.task('build', function (path)는 이제까지 작동하지 않을 것이다. 꿀꺽 거리는 작업에 대한 유일한 유효한 인수는 비동기 작업 완료를 알리기위한 콜백입니다. 위의 실행을 시도한 경우 gulp는 path이 함수가 될 것이라고 예상하고 해당 함수가 호출되지 않으면 작업이 완료되지 않습니다. 이 예제에서 '빌드'작업은 태스크가 아닌 '번들'파이프에서 호출되는 일반 함수 여야합니다.

더 좋은 질문은 다음과 같습니다. 꿀꺽 꿀꺽 파이프 내부에서 사용자 지정 함수를 실행하려면 어떻게해야합니까? gulp-tap과 같은 플러그인을 사용하면 쉽게 닫힐 수 있지만 본질적으로 기능을 호출하는 인라인 룰 프 플러그인을 만드는 것은 어렵지 않습니다.

꿀꺽 파이프는 vinyl file object, 인코딩 및 콜백을 포함하는 through2 개체 스트림을 수신합니다. 여기에 꿀꺽 파이프에있는 파일에 대한 임의의 함수를 호출하기위한 기본 골격이다 :

var gulp = require('gulp'); 
var through = require('through2'); 

gulp.task('stack', function() { 
    return gulp.src('./src/*.js') 
    .pipe(through.obj(function(file, enc, cb) { 
     // file.path is the full path to the file 
     myBuildFunction(file.path); 
     cb(null, file); 
    })) 
    .pipe(gulp.dest('./build/')); 
}) 

는 믿을 수 없을만큼 강력 할 수있다. 파일 내용을 수정하려면 file.contents 버퍼 만 변경하십시오. 파일의 이름을 바꾸거나 파일의 위치를 ​​변경하려면 file.path을 변경하십시오. 모든 것은 꿀꺽 꿀꺽 꿀꺽 꿀꺽 꿀꺽 꿀꺽 꿀꺽 꿀꺽 꿀꺽 꿀꺽 꿀꺽 마셔야합니다

관련 문제