SORU
31 Mayıs 2014, CUMARTESİ


/ Yudum izle çökmesini kırılma hataları önlemek

Yudum 3.6.2 kullanıyorum ve şu ana kadar örnek bir online ayarlanan aşağıdaki görev var

gulp.task('watch', ['default'], function () {
  gulp.watch([
    'views/**/*.html',        
    'public/**/*.js',
    'public/**/*.css'        
  ], function (event) {
    return gulp.src(event.path)
      .pipe(refresh(lrserver));
  });

  gulp.watch(['./app/**/*.coffee'],['scripts']);
  gulp.watch('./app/**/*.scss',['scss']);
});

CoffeeScript benim yudum bir hata var her zaman istediğim şeyi vermiyor izle - belli değil.

As recommended elsewhere I tried this

gulp.watch(['./app/**/*.coffee'],['scripts']).on('error', swallowError);
gulp.watch('./app/**/*.scss',['scss']).on('error', swallowError);
function swallowError (error) { error.end(); }

ama çalışmak için görünmüyor.

Neyi yanlış yapıyorum?


@Yanıt olarak Aperçu cevabı Ben swallowError benim yöntem ve yerine aşağıdaki çalıştı değişiklik:

gulp.task('scripts', function () {
  gulp.src('./app/script/*.coffee')
    .pipe(coffee({ bare: true }))
    .pipe(gulp.dest('./public/js'))
    .on('error', swallowError);
});

Yeniden ve kahve benim dosya bir sözdizimi hatası yarattı. Aynı sorun:

[gulp] Finished 'scripts' after 306 μs

stream.js:94
      throw er; // Unhandled stream error in pipe.
            ^
Error: W:\bariokart\app\script\trishell.coffee:5:1: error: unexpected *
*
^
  at Stream.modifyFile (W:\bariokart\node_modules\gulp-coffee\index.js:37:33)
  at Stream.stream.write (W:\bariokart\node_modules\gulp-coffee\node_modules\event-stream\node_modules\through\index.js:26:11)
  at Stream.ondata (stream.js:51:26)
  at Stream.EventEmitter.emit (events.js:95:17)
  at queueData (W:\bariokart\node_modules\gulp\node_modules\vinyl-fs\node_modules\map-stream\index.js:43:21)
  at next (W:\bariokart\node_modules\gulp\node_modules\vinyl-fs\node_modules\map-stream\index.js:71:7)
  at W:\bariokart\node_modules\gulp\node_modules\vinyl-fs\node_modules\map-stream\index.js:85:7
  at W:\bariokart\node_modules\gulp\node_modules\vinyl-fs\lib\src\bufferFile.js:8:5
  at fs.js:266:14
  at W:\bariokart\node_modules\gulp\node_modules\vinyl-fs\node_modules\graceful-fs\graceful-fs.js:104:5
  at Object.oncomplete (fs.js:107:15)

CEVAP
31 Mayıs 2014, CUMARTESİ


Bana, swallowError işlevi aşağıdaki gibi görünmelidir :

function swallowError (error) {

  // If you want details of the error in the console
  console.log(error.toString());

  this.emit('end');
}

Bence sen bağlama fonksiyonu error olayın görev olduğunu düşen, watch görev, çünkü o da nereden geliyor bu sorun, küçük olmalıdır. bu hata üzerinde geri her görevin başarısız olabilir, gibi eklentileri tatili var cevapsız ; veya başka bir şey, engel watch görev durdurmak.

Örnekler :

gulp.task('all', function () {
    gulp.src('./app/script/*.coffee')
        .pipe(coffee({ bare: true }))
        .on('error', swallowError)
        .pipe(gulp.dest('./public/js'));

    gulp.src('css/*.scss')
        .pipe(sass({ compass: true }))
        .on('error', swallowError)
        .pipe(cssmin())
        .pipe(gulp.dest('dist'));
});

Eğer başka bir modül eklemek için sakıncası yoksa. alternatif olarak, kullanabilirsinizgünlükfonksiyongulp-utilsana senin Gulpfile fazladan bir işlev bildirmek :

.on('error', gutil.log)

Ama müthiş bir bakmasını öneririmgulp-plumbereklenti, error olay akışını kırmak neden onerror işleyicisi kaldırmak için kullanılır. Çok basit kullanılan ve başarısız olan tüm görevleri yakalamak sizi engeller.

gulp.src('./app/script/*.coffee')
  .pipe(plumber())
  .pipe(coffee({ bare: true }))
  .pipe(gulp.dest('./public/js'));

İlgili eklenti yaratıcısı tarafından this article bu konuda daha fazla bilgi.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jonathan Morrison

    Jonathan Mor

    24 Mart 2010
  • Majestic Casual

    Majestic Cas

    28 NİSAN 2012
  • mipd1980

    mipd1980

    25 EKİM 2006