gulp watch rubrika: Programování: JavaScript

Anonym
položil/-a 23.10.2014

Když gulp nastavím takhle, očekával bych, že když se změní skripty, pustí to pouze task scripts. Obdobně změna stylů spustí task styles.

var paths = {
    scripts: {
        src: ['js/**/*.js'],
        index: './js/index.js',
        output: 'compiled-js'
    },
    styles: {
        src: ['sass/**/*.scss'],
        index: 'sass/theme.scss',
        output: 'css'
    }
};
 
gulp.task('watch', function() {
    gulp.watch(paths.scripts.src, ['scripts']);
    gulp.watch(paths.styles.src, ['styles']);
});

Místo toho změna čehokoliv spustí oba tasky. Proč?

Komentáře

  • Anonym : Ukaz obsah tych premennych s cestami. 22.10.2014
  • Anonym : jsou to samozřejmě jiný adresáře 23.10.2014
  • LexVjatkin : Tvuj priklad vyzkousen v Gulp 3.8.9 - funguje dle ocekavani.. Aktualizuj Gulp, izoluj postupne problem na minimum. 27.10.2014
odkaz
9 Honza Břešťan
odpověděl/-a 24.10.2014

Absolutni strela od boku, ale nemuze to byt tohle issue?

Since gulp-watch is using gulp-batch for callback — it will not start another build while one is running. Instead it will buffer files, that triggered callback and run build again with all files.

https://github.com/floatdrop/gulp-watch/blob/master//docs/readme.md#star...

Podle toho by pak resenim bylo pouzit misto gulp.watch(paths.scripts.src, ['scripts']) delsi variantu:

gulp.task('watch', function () {
    watch(paths.scripts.src, function (files, cb) {
        gulp.start('scripts', cb);
    });
});

Komentáře

  • Anonym : Odkazuješ na "an reimplementation of bundled gulp.watch". Teoreticky to můžu taky zkusit, ale myslel jsem, že by to šlo i s tim originálnim ;) 25.10.2014

Pro zobrazení všech 3 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.