web-dev-qa-db-fra.com

Comment ajouter des fichiers src au milieu d'un tube

Je veux traiter certains fichiers avec 'café', ajouter des fichiers js, concaténer et réduire.

Cela ne fonctionne pas, le café échoue sur les fichiers js réguliers:

gulp.task 'build-js', ->
  gulp.src([
      "bower_components/mbdev-core/dist/js/db.js"
      "bower_components/mbdev-core/dist/js/utils.js"
      "src/js/config/app.coffee"
      "src/js/config/app-db.coffee"              
      "src/js/accounts/accounts.coffee"
      "src/js/budget_items/budget_items.coffee"
      "src/js/line_items/line_items.coffee"
      "src/js/misc/misc.coffee"
      "src/js/reports/report_generators.coffee"
      "src/js/reports/reports.coffee"
   ])
  .pipe(coffee()).on('error', gutil.log)
  .pipe(concat('app.js'))
  .pipe(gulp.dest('public/js'))

Existe-t-il un moyen d'ajouter des fichiers après la partie café?

35
mbdev

Vous n'avez pas besoin d'ajouter des fichiers au src d'origine, mais plutôt d'utiliser du café uniquement "si" ...

Alors, utilisez gulp-if

gulp.task('task', function() {
  gulp.src('./stuff/*')
    .pipe(gulpif(/[.]coffee$/, coffee()))
    .pipe(gulp.dest('./dist/'));
});

Voir ici plus sur gulp-if.

54
Mangled Deutz

La réponse de @Contra ne fonctionne pas pour moi. Un nouveau flux a remplacé l'ancien, sans les rejoindre.

Vous devez combiner les flux de cette manière:

es = require("event-stream")

es.concat(
  gulp.src('*.coffee')
  .pipe(coffee()),
  gulp.src('*.js')
).pipe(concat('all.js'))
.pipe(gulp.dest('.'))

Et vous pouvez voir le guide officiel à ce sujet ici tilisation de plusieurs sources dans une tâche

Si vous vous souciez de l'ordre dans le flux, vous devez utiliser streamqueue au lieu de event-stream

17
hyspace

Vous pouvez utiliser le plugin gulp-add-src :

addsrc = require 'gulp-add-src'

gulp.task 'build-js', ->
  gulp.src(['src/coffee/*.coffee'])
    .pipe(coffee()).on('error', gutil.log)
    .pipe(addsrc(['src/js/somefile.js', 'src/js/otherfile.js']))
    .pipe(concat('app.js'))
    .pipe(gulp.dest('public/js'))
14
urish

les flux gulp.src sont des relais afin que vous puissiez les ajouter à tout moment dans le pipeline

gulp.task 'build-js', ->
  gulp.src([
      "src/js/config/app.coffee"
      "src/js/config/app-db.coffee"              
      "src/js/accounts/accounts.coffee"
      "src/js/budget_items/budget_items.coffee"
      "src/js/line_items/line_items.coffee"
      "src/js/misc/misc.coffee"
      "src/js/reports/report_generators.coffee"
      "src/js/reports/reports.coffee"
  ])
  .pipe(coffee()).on('error', gutil.log)
  .pipe(gulp.src([
      "bower_components/mbdev-core/dist/js/db.js"
      "bower_components/mbdev-core/dist/js/utils.js"
  ]))
  .pipe(concat('app.js'))
  .pipe(gulp.dest('public/js'))
11
Contra