knuspermagier.de
Ein L und zwei P. Philipp!

Wie mich mein Adblocker viel Zeit kostete

Seit ein paar Wochen machte der dev-Prozess eines Projektes Probleme. Immer, wenn ich die Seite aufrufen wollte, spuckte er nur Fehlermeldungen auf die JavaScript-Console aus. Da ich keine Zeit hatte, mir das genau anzuschauen, arbeitete ich halt wie 2005 mit einem npm build nach jeder Änderung. Ging schon irgendwie, war aber nervig.

Gestern wollte ich das Problem endlich mal beheben und schaute es mir genauer an. Stimulus konnte einen Controller nicht laden, soso. Bei Vite-Projekten ist es ja so, dass im dev-Modus nicht alles zu einem großen Bundle zusammengeklebt wird, sondern jede JavaScript-Datei einzeln geladen wird. Ich fräste mich da also durch und versuchte den Fehler zu finden, ohne größeren Erfolg.

Ich bat Claude AI ein paar Debug-Ausgaben an kritischen Stellen einzubauen, aber das zeigte mir eigentlich auch nur, dass weiterhin alles in Ordnung war. Als ich irgendwann die Console nochmal genau anschaute und Meldung für Meldung durcharbeitete, fiel es mir eine Zeile auf, die ich bisher ignoriert hatte: die lib/matomo.js konnte nicht geladen werden.

🤦‍♂️🤦‍♂️🤦‍♂️

Vor Monaten baute ich für ein paar Funktionen ein Tracking ein, das mit Matomo realisiert wurde. Ich packte die Helper-Funktionen dafür in diese Datei, die ich dummerweise halt matomo.js nannte. Zunächst war alles völlig problemlos, aber seit ein paar Wochen klappte es nun nicht mehr, was war nur geschehen? Richtig, Chrome hat mich gezwungen auf uBlock Origin Lite umzusteigen, da das richtige uBlock Origin ja nicht mehr funktioniert. Zunächst habe ich mich gefreut, dass auch die Lite-Funktion ziemlich gut funktioniert und ich in meinem täglichen Leben keine Änderung merke, aber offensichtlich gibt es schon ein paar Feinheiten die anders sind – so hat uBlock Origin anscheinend erkannt, wenn es sich bei einem Request um einen Dynamic Import aus dem JavaScript-Kontext handelt (oder so) – uBlock Lite sind ja nur noch einfache blockierte URLs oder URL-Teile.

Was lernen wir daraus?

  • Bei Fehlern die JavaScript-Console genau lesen und keine Zeilen auslassen
  • Trackingfunktionen nicht in einer so offensichtlich benannten Datei verstecken
  • Vielleicht doch auf einen Browser wechseln, der noch das richtige uBlock unterstützt

Kommentare, Feedback und andere Anmerkungen?
Schreib mir eine E-Mail 🤓