Probleme beim Debuggen von Inhaltsskripten in einer Chrome-Erweiterung mit require.js

Zum Laden von Modulen in die Inhaltsskripte verwende ich den folgenden Code (Quellehttp://prezi.com/rodnyr5awftr/requirejs-in-chrome-extensions/):

require.load = function (context, moduleName, url) {
    var xhr;
    xhr = new XMLHttpRequest();
    xhr.open("GET", chrome.extension.getURL(url) + '?r=' + new Date().getTime(), true);
    xhr.onreadystatechange = function (e) {
        if (xhr.readyState === 4 && xhr.status === 200) {
            eval(xhr.responseText);
            context.completeLoad(moduleName)
        }
    };
    xhr.send(null);
};

Das Problem tritt beim Debuggen über die Chrome-Konsole auf. Wenn in einem meiner Module ein Fehler auftritt, wird lediglich gemeldet, dass der Fehler in einer anonymen Funktion aufgetreten ist. Es wird jedoch nicht mitgeteilt, in welchem ​​Modul oder in welcher Zeile in diesem Modul der Fehler aufgetreten ist über Skript.

Da viele Leute offenbar unterschiedliche Varianten des obigen Codes verwenden, wenn sie require.js mit Chrome-Erweiterungen verwenden, muss es eine einfache Möglichkeit geben, mehr Informationen in der Debug-Konsole zu erhalten. Ich weiß nur nicht, was das ist :).

Danke für Ihre Hilfe!!

UPDATE 4/1: Das Ändern der obigen eval () -Anweisung zur Verwendung von Function () scheint das Problem dadurch gelöst zu haben, dass die Chrome-Konsole die Hinzufügungsinformationen hinzufügt. (Gutschrift für diese Arbeit geht dazuFrage).

Mir ist klar, dass die beiden Funktionen nicht vollständig austauschbar sind (siehediese Frage). Wenn jemand irgendwelche Fallstricke bei der Verwendung von Function () anstelle von eval () im obigen Code kennt, lass es mich bitte wissen !!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage