Serverseitig reagieren mit webpack 2 System.import

8

Ich habe eine isomorphe App, die mit webpack 2 Assets kompiliert. Ich habe jetzt chunking mit System.import hinzugefügt, was auf der Webpack-Seite funktioniert, aber nicht auf der Serverseite mit der Funktion found.

Irgendeine Idee, wie ich das lösen kann?

    
Mohamed El Mahallawy 09.05.2016, 16:59
quelle

2 Antworten

21

Es gibt ein paar Optionen, um System.import mit isomorphem / serverseitigem Rendering arbeiten zu lassen:

Feature-detect System und polyfill

Mit

Node können Sie require() an mehreren Stellen aufrufen und% System.import wie folgt anpassen, sollte funktionieren:

%Vor%

Wenn Sie nach einer robusteren Implementierung suchen, gibt es auch es6-micro-loader , Das implementiert ein System Polyfill, das sowohl im Browser als auch im Knoten funktioniert.

Verwenden Sie babel-plugin-system-import-transformer , um% co_de zu ersetzen % mit dem äquivalenten UMD-Muster

nimmt das folgende Formular an:

%Vor%

und wandelt es in:

um %Vor%

oder

Mit dem Webpack-Targeting-Knoten erstellen (für das require-Laden erforderlich ist) Stücke):

%Vor%     
addyo 22.08.2016, 20:30
quelle
2

Eine dieser Optionen könnte Ihren Anforderungen entsprechen:

  1. Kompilieren Sie Ihren Code mithilfe von Webpack mit Zielknoten und führen Sie die Bundle-Server-Seite aus
  2. Wenn du bereits mit babel mit babel-register oder Ähnlichem kompilierst, könntest du etwas wie babel- plugin-remove-webpack (benötigt eventuell eine PR, um es zusammen mit System.import zusätzlich zu require.ensure zu aktivieren).
  3. Definieren Sie einen globalen Mock für System.import , der nur eine aufgelöste Zusage mit dem require () 'd-Modul zurückgibt.
riscarrott 10.05.2016 00:16
quelle