2015-03-31 12 views
6

Ich versuche Webpack zu verwenden, um Reaction-Code zu bündeln, der serverseitig und clientseitig gerendert wird. Einige Bibliotheken, die ich verwenden möchte (wie glidejs), gehen vollständig davon aus, dass sie im Browser ausgeführt werden.Webpack: Ignoriere Client-Bibliotheken serverseitig

Ich benutze nicht die lib bis componentDidMount oder an einem anderen Punkt, der nicht auf dem Server ausgeführt wird.

Wie kann ich sie benötigen, aber im Grunde nur tun sie nichts in der Knotenumgebung?

Glidejs möchte speziell Jquery, Fenster und Dokument. Es zu geben, scheint in Ordnung zu sein, aber ich weiß nicht, was ich mit Fenster und Dokument machen soll.

+1

Haben Sie eine gute Lösung dafür gefunden? –

Antwort

1

Ich habe nicht eine schöne Lösung für dieses Problem zu finden, aber - zumindest - es sind zwei mögliche Lösungen:

  1. Sie Ihren node.js Code mit webpack node as target durch Angabe bündeln könnten . Dann können Sie clientseitigen Code mit leeren Stubs aliasieren.

  2. Sie können require() leere Stubs und alias sie in Ihrer Webpack-Konfiguration zu den realen Modulen.

+0

Ich habe dieses Problem in meinen Anwendungen umgangen, indem ich zwei verschiedene Eintragsdateien verwendet habe, eine für node.js und eine für den Browser. Aber das könnte in manchen Situationen unmöglich sein (besonders bei reagieren). –

+0

Ich benutze eine andere Webpack-Konfiguration mit 'target: 'node', aber ich verstehe nicht, wie man das require stub. Legst du einfach einen leeren String für den Aliasnamen wie 'alias: ['glidejs': '']'? – kjs3

+0

Erstellen Sie ein leeres Modul mit einem Kommentar wie 'excluded by webpack' und alias dieses Modul mit' 'glidejs''. –