Probleme mit Gulp – watch-task läuft nicht bei Dateiänderungen

02/11/2019 12:41 type.#1
Hey ihr! o/

Gibt es hier zufällig jemanden, der seinen Workflow mit Gulp automatisiert hat?
Ich stehe aktuell vor dem Problem, dass mein „watch“-task sich nicht entscheiden kann, ob er funktionieren will, oder nicht.
Sofern ich das richtig verstehe, sollte gulp.watch() ja jedes mal getriggert werden, wenn ich Dateiänderungen speichere, oder?
Leider ist dem nicht so… Ich kann aber beim besten Willen auch keine Ursache ausfindig machen.

Code:
task('watch:pug',  () => {watch(config.pug.src,  series('pug',  'browser-reload'))})
task('watch:sass', () => {watch(config.sass.src, series('sass', 'browser-reload'))})
task('watch:js',   () => {watch(config.js.src,   series('js',   'browser-reload'))})

task('watch', series(
  'default',
  parallel(
    'browser-sync',
    'watch:pug',
    'watch:sass',
    'watch:js'
  )
))
Die einzelnen Tasks zur Verarbeitung funktionieren ohne Probleme; ich vermute also, dass es nicht daran liegt – eine Wette würde ich darauf aber lieber nicht abschließen.

Vielleicht hat ja jemand von euch Erfahrungen und kann mir sagen, dass ich doof bin, oder so ähnlich.

Die kompletten Dateien:
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]


Mit besten Grüßen
type.
02/11/2019 13:59 JustinMind#2
Was für eine Gulp-Version verwendest du denn?
Hast du auch die vorgeschlagene offizielle Methode bereits ausprobiert?

Code:
const { watch } = require('gulp');

const watcher = watch(['input/*.js']);

watcher.on('change', function(path, stats) {
  console.log(`File ${path} was changed`);
});

watcher.on('add', function(path, stats) {
  console.log(`File ${path} was added`);
});

watcher.on('unlink', function(path, stats) {
  console.log(`File ${path} was removed`);
});

watcher.close();
Quelle: [Only registered and activated users can see links. Click Here To Register...]

Was bedeutet 'Sie wissen nicht, ob sie funktionieren wollen oder nicht'?
Haben sie mal funktioniert? Funktionieren keine der 'Watches'?

Versuche dein Problem einmal herunterzubrechen.
Verwende nur einen 'Watch'-Task, entferne die serielle und parallele Verarbeitung und schaue, ob es immer noch nicht funktioniert mit jeweils JS,Sass oder Pug.

Randbemerkung: Ich kann dir wärmstens empfehlen [Only registered and activated users can see links. Click Here To Register...] zu nutzen.
02/11/2019 14:11 type.#3
Danke schon mal für die Antwort! c:
Ich nutze Version 4 – also die Aktuelle.


Quote:
Originally Posted by JustinMind View Post
Was bedeutet 'Sie wissen nicht, ob sie funktionieren wollen oder nicht'?
Haben sie mal funktioniert? Funktionieren keine der 'Watches'?
oof. Mein Fehler, ich hab mich so oft umentschieden, wie ich meinen Beitrag formuliere, dass das wohl irgendwo im Nirvana verschwunden ist.
Das Ding ist, dass es manchmal reagiert, und manchmal nicht; und zwar ohne erkennbares Muster – weder, was die Dateien selbst angeht, noch der Rechner, an dem ich aktuell arbeite.



Quote:
Originally Posted by JustinMind View Post
Was für eine Gulp-Version verwendest du denn?
Hast du auch die vorgeschlagene offizielle Methode bereits ausprobiert?
Sofern ich das beim Lesen richtig verstanden habe, ist das eigentlich „nur“ die aufgesplittete Variante der Funktion und das sollte eigentlich automatisch passieren in den watch-tasks. Die ganzen Einzelteile mal eigenständig zu konfigurieren habe ich tatsächlich nicht versucht – werde ich aber definitiv mal noch versuchen. Die Hoffnung stirbt bekanntlich zu letzt.
02/11/2019 14:42 JustinMind#4
Wenn es mal und mal nicht funktioniert, klingt es stark, nach asynchroner Verarbeitung in deinem Fall die 'parallel'-Verarbeitung. Eventuell sind manche Aufgaben je nach Abarbeitung und Umfang von JS,Sasss oder Pug, mal schneller mal langsamer.

Eventuell kommt Gulp hier nicht klar, wenn er den Browser neuladen muss, wenn er bereits gerade durch einen parallelen Task dabei ist den Browser neu zu laden.
=> Interner Fehler.

Bei Gulp gibt es bestimmt auch einen 'verbosen' Modus, der dir eventuelle Fehler ausspucken kann.
02/11/2019 15:25 type.#5
Ich habe jetzt mal testweise meine parallel() functions zu series() functions gemacht – ändert am Ergebnis leider gar nichts. Der Browsersync läuft ja aber sowieso nicht (wenn ich mich nicht völlig vertue) async.

In der Zwischenzeit habe ich auch mal versucht einen Prozess äquivalent zu deinem im ersten Beitrag geposteten Code aus den Docs zu basteln – auch hier stehe ich witzigerweise vor der selben Problematik.
Daraufhin habe ich mal einen Kollegen gebeten das Repo zu pullen und mal zu schauen, was bei ihm passiert. Er scheint ohne Probleme damit arbeiten zu können.

Mein nächster Ansatz wäre jetzt später mal alle Dependencies (inkl. der Globalen) neu zu installieren, für den Fall, dass sich da etwas verschluckt hat? Wer weiß … ?




Update:

Ich habe die Gelegenheit direkt mal genutzt und mein System neu aufgesetzt. Das wollte ich eh mal wieder machen.
Daraus resultierend musste ich dann natürlich auch NVM, Node, etc. neu installieren. Ich bin mir noch immer nicht sicher, woran es nun letzten Endes gelegen hat, allerdings habe ich heute keine weiteren Fehler bemerken können –*also scheint es geholfen zu haben. ¯\_(ツ)_/¯