5

Ich versuche, das serverseitige Rendering für meine reactjs-Anwendung zu implementieren. Ich benutze Webpack, um reactjs Anwendung zu erstellen, enhanced-resolve, um den Import von jsx-Dateien in nodejs zu handhaben.So behandeln Sie das Fensterobjekt auf Nodejs für das serverseitige Rendern der Anwendung "reactjs"

Meine Anwendung hängt von Bibliotheken von Drittanbietern wie enquire.js ab. Wenn reagieren Anwendung versucht enquire.js auf NodeJS zu importieren, schlägt es mit Fehler ReferenceError: window is not defined

Da Fensterobjekt ist nicht verfügbar NodeJS wie Bibliotheken zu behandeln, die Fenster für serverseitige Rendering verwenden?

Antwort

1

Ich habe Webpack noch nicht verwendet. Allerdings hatte ich ähnliches Problem mit browserify und ich löste es durch Erstellen von zwei Builds: eine für Browser eins für node.js mit Liste der Module zu ignorieren. Sie könnten den gleichen Effekt, indem zu webpack Config erreichen:

{ 
    plugins: [ 
     new webpack.IgnorePlugin(/file\.js$/) 
    ] 
} 

Dann müssen Sie sicherstellen, dass Sie keine Anrufe zu enquire.js machen durch Prüfen, ob require() falschen Wert oder ein Objekt mit Modulfunktionen zurückgegeben.

+0

können Sie die Problemumgehung teilen, die Sie getan haben, um dieses Problem mit browserify zu lösen. Danke –

+0

Das verursacht ein 'e.code = 'MODULE_NOT_FOUND'; wirf e; }())); 'Fehler. Funktioniert nicht so. – SudoPlz

Verwandte Themen