2016-09-04 2 views
0

내가 항상 함께 포함되지 않기 때문에 자신의 소스를 뱉어 낼 필요가있는 구성 요소 배열이 있다고 가정 해 보겠습니다.이 구성 요소는 자체 번들이되어야합니다. 아이디어는 결국 100 개의 구성 요소가 될 것이고 언제든지 체리를 가져올 수 있다는 것입니다.한 번에 여러 개의 webpack 인스턴스를 실행할 수 있습니까?

그러나 덤프와 함께 webpack-stream을 사용하면 동적으로 작업을 등록하고 순차적으로 실행되고 있음을 볼 수 있지만 모양에 따라 하나의 webpack 스트림 만 실행되지만 출력은 보이는 것 같습니다. SECOND 구성 요소에서 첫 번 0 구성 요소 디렉토리로 번들하십시오.

var components = [ 
    {'name : 'a', src : './foo/bar/entrya.js', dest : '/dir/a'}, 
    {'name : 'b', src : './foo/bar/entryb.js', dest : '/dir/b'}, 
]; 

상대적으로 간단한 권리 :

enter image description here

그것은 그렇게 같은 성분의 배열은 매우 간단 빌드 프로세스의이야? 그 다음이 같은 뭔가, 작업을 등록 할 수

components.forEach(component => { 
    gulp.task(component.name, cb => { 

     function task(component) { 
      return gulp.src(component.src) 
      .pipe($.webpackStream(webpackConfig)) 
      .pipe(component.dest(component.dest)); 
     } 

     return task.apply(this, [component, cb]); 
    }); 
}); 

이 내가 가진 무엇을 믿을 수 없을만큼 아래로 무식 버전이지만, 동적, 거의 같은 일이 발생하고 나중에 우리가 순차적으로 이러한 작업을 실행합니다.

답변

1

webpack-stream은 여러 개의 엔트리 포인트와 여러 개의 엔트리 포인트를 처리 할 수 ​​있습니다.

var gulp = require('gulp'); 
var webpack = require('webpack-stream'); 
gulp.task('build', function() { 
    return gulp.src(['src/entry.js']) // entry.js file doesn't need to exist 
    .pipe(webpack({ 
     entry: { 
     a : __dirname + "/foo/bar/entrya.js", 
     b : __dirname + "/foo/bar/entryb.js" 
     }, 
     output: { 
     filename: '[name].js' 
     } 
    })) 
    .pipe(gulp.dest('dir/')); 
}); 
0

빌드가 병렬로 실행되지 않습니다. 당신은 순차적으로 작업을 등록하고 있습니다. 그러나 이러한 작업을 하위 프로세스로 병렬로 실행할 수 있습니다. 사용할 수있는 좋은 옵션은 parallel-webpack입니다.

관련 문제