2014-05-21 2 views
1

나는 꿀꺽 플러그인에 RequireJS Optimizer 포장을 시도하고있다. 이 havebeenotherattempts 꿀꺽에서이 기능을 제공하지만, 그들 중 누구도 내 요구를 충족 없습니다.꿀풀 플러그인이 하나의 파일을 가져 와서 많은 파일을 반환 할 수 있습니까?

플러그인 개발하는 일반적인 접근 방식은 공정 그들에 파일을 한 다음 전원을 나눠하는 것입니다; 그러나 이러한 접근 방식은 RequireJS Optimizer가 작동하는 방식과 실제로 호환되지 않습니다.

덩어리 플러그인 guidelines을 충족시키지 못했지만 optimizer build configuration을 가져 와서 처리하고 결과 파일을 나눠주는 다른 접근 방법을 찾고 있습니다.

// Read in the r.js configuration 
gulp.src('./build.js') 
    // Optimize the files according to the config 
    .pipe(optimize()) 
    // Return the resulting files for additional processing 
    .pipe(size()); 

꿀풀 플러그인이 하나의 파일을 가져 와서 많은 파일을 반환 할 수 있습니까? 그렇다면 어떻게?

답변

0

나는 최적화 프로세스의 출력을 따라 통과 vinyl-fs를 사용하여 끝났다.

var requirejs = require('requirejs'), 
    through  = require('through2'), 
    vfs   = require('vinyl-fs'); 

return through.obj(function(file, encoding, done){ 

// Parse config from file 

requirejs.optimize(config, 

    // Success callback 
    function(buildResponse){ 
     vfs.src(config.dir + '/**/*.js') 
      .on('data', this.push.bind(this)) 
      .on('error', this.emit.bind(this, 'error')) 
      .on('end', done); 
    }.bind(this), 

    // Error callback 
    function(buildError){ 
     // Handle error 
    }); 

용도 등을 찾고 끝 ...

// Read in build configuration 
gulp.src('build.js') 
    // Run files from the config through the optimizer 
    .pipe(optimize(settings)) 
    // Measure the size of the optimized files 
    .pipe(size()); 
+0

나는 같은 문제로 고심하고있다. 더 구체적인 예를 들어 보셨습니까? 어떻게 이런 식으로 fe에 파이프. gulp.dest() 핸들러? 또한 "콜백"은 무엇을 나타 냅니까? – crappish

+0

좀 더 자세히 설명해 보았습니다. 플러그인이 무엇인지 감안할 때'gulp.dest()'를 사용할 필요는 없지만 할 수 없었던 이유는 보이지 않습니다. –

1
  1. 예, 단순히 여러 개의 파일을 방출한다. 출력은 단순히 하나 이상의 Vinyl 파일이어야합니다.
  2. 플러그인은 그들에게 (방출) 파이프 무엇받을 수 있습니다. 이는 비동기 파이프를 사용하는 모든면에서 중요합니다.

어떻게 작동하는지 이해하려면 the plugin docs을 살펴보십시오.

+0

감사합니다. 나는 그것을 조사 할 것이다. –