Eine meiner Abhängigkeiten verwendet Folgendes, um ein Fenster an die Schließung zu übergeben:
%Vor% Vorläufig kann ich es nur in etwas Sinnvolleres ändern, damit es browserfig nicht bricht, aber gibt es eine Methode, mit der ich einen Wert für this
in einem Browsermodul erzwingen kann?
Ich habe eine browserify-Transformation namens "modify" geschrieben , die im Allgemeinen tun sollte, was Sie wollen, also den fehlerhaften Code einpacken ein IIFE, das ungefähr so aussieht:
%Vor%Tatsächlich ist meine Implementierung nicht viel komplizierter als das.
Die ursprüngliche Idee war, ein Globals-umweltschädliches "Modul" zu exportieren, als wäre es ein CommonJS-Modul (z. B. AngularJS-Export window.angular
), aber weil es diesen Wrapper enthält, sollte es den Trick machen.
Anweisungen finden Sie in der README. Wenn das fehlerhafte Skript nicht wirklich etwas hat, das es vernünftig exportieren kann, muss es einfach window
exportieren (was zu module.exports = window['window']
führt) oder einen beliebigen Namen, der nicht existiert (was zu undefined
führt).
Wenn Sie auf das Objekt window
in Ihrem eigenen Browsercode zugreifen möchten, sehen Sie sich auch das globale -Modul an. Dies bietet einen schönen Wrapper für den sicheren Zugriff auf Browser-Globals in CommonJS-Modulen.
Tags und Links javascript node.js browserify this