molily: (YEPNOPE) Warum wird nur eine Ausgabe in der Konsole gemacht?

Beitrag lesen

Das muss ein Fehler in yepnope sein. Vielleicht wurde der schon gemeldet.

Yepnope findet den Original-Handler nicht, wenn load als Array und callback als Object angegeben ist. Es wrappt den letzten Callback, damit letztlich complete ausgeführt wird. Es versucht den Original-Handler unter der Eigenschaft '1', nicht 'main.js' zu finden.

https://github.com/SlexAxton/yepnope.js/blob/master/yepnope.js#L467-L473

cbRef ist das callback-Konfigurationsobjekt { 'main.js: function(){…}, … }
callbackKey is '1', sollte 'main.js'
cbRef[callbackKey] ergibt demnach undefined
innerCb ist daher undefined und der Original-Handler wird nicht aufgerufen

Da die Möglichkeit besteht, selbst Identifier anzugeben, würde ich das auch tun. Die URLs ändern sich häufig, die Identifier nicht so häufig. Es ist i.d.R. sinnvoll, für solche Konfigurationen eigene Kurzbezeichner zu verwenden.

Das Mischen von Arrays und Objects halte ich für unsauber. Ich weiß nicht, warum Yepnope hier mehrere verschiedene Schreibweisen erlaubt. Das erhöht nur die Komplexität. Und wie man sieht, ist es auch nicht so einfach fehlerfrei zu implementieren.

Mathias