2016-06-24 6 views
1

Gulpを使用して、いくつかの異なる場所で画像を最適化しようとしています。これは、ディレクトリ構造である:Gulpのディレクトリ構造を複製する

|-- app 
    |-- _images 
     -- image1.jpg 
     -- image2.jpg 
    |-- _templates 
     |-- _pages 
     |--_services 
      |--_images 
       -- image1.jpg 
       -- image2.jpg 

そして、これは私がいる問題は、アプリケーションの「テンプレート」と「ページ」ディレクトリが "のルートにコピーされていることであるコード

gulp.task('images:tmp', function() { 
return gulp.src(['app/templates/pages/**/*.{png,jpg,gif,svg}', 'app/images/**/*.{png,jpg,gif,svg}'], {base: 'app/'}) 
// Caching images that ran through imagemin 
.pipe(cache(imagemin({ 
    interlaced: true, 
}))) 
.pipe(gulp.dest('.tmp')) 
}); 

ですサービス「と一緒に 『の.tmp、』ディレクトリ:

|-- .tmp 
    |-- _images 
     -- image1.jpg 
     -- image2.jpg 
    |-- _templates 
     |-- _pages 
     |--_services 
      |--_images 
       -- image1.jpg 
       -- image2.jpg 

私だけ欲しい 『そうのように、ルートにサービス』ディレクトリを:

|-- .tmp 
    |-- _images 
     -- image1.jpg 
     -- image2.jpg 
    |-- _services 
     |--_images 
      -- image1.jpg 
      -- image2.jpg 

上記のディレクトリ構造をレプリケートするタスクを作成するにはどうすればよいですか?あなたの助けを前もってありがとう!

答えて

0

(私はコメントとしてこれを追加することはできません)

二つの流れでソースストリームを分割し、https://github.com/gulpjs/gulp/blob/master/docs/recipes/using-multiple-sources-in-one-task.mdでレシピどおりにマージされたストリームを返します。

var merge = require('merge-stream'); 
gulp.task('images:tmp', function() { 
    var stream1 = gulp.src('app/templates/pages/**/*.{png,jpg,gif,svg}') 
        .pipe(cache(imagemin({interlaced: true}))) 
        .pipe(gulp.dest('.tmp')) 
       ); 
    var stream1 = gulp.src('app/images/**/*.{png,jpg,gif,svg}',{base: 'app/'}) 
        .pipe(cache(imagemin({interlaced: true}))) 
        .pipe(gulp.dest('.tmp')) 
       ); 
    return merge(stream1,stream2); 
}); 
0

おかげで、maoizm。これは、2番目の "var stream1"を編集して "var stream2"を読み込み、余分なものを削除した後に私のために働いた。ストリームから。

gulp.task('images:tmp', function() { 
    var stream1 = gulp.src('app/templates/pages/**/*.{png,jpg,gif,svg}') 
       .pipe(cache(imagemin({interlaced: true}))) 
       .pipe(gulp.dest('.tmp'));    
    var stream2 = gulp.src('app/images/**/*.{png,jpg,gif,svg}',{base: 'app/'}) 
       .pipe(cache(imagemin({interlaced: true}))) 
       .pipe(gulp.dest('.tmp'));    
    return merge(stream1,stream2); 
}); 
関連する問題