Verwenden von SystemJS / jspm zum Laden von async, es5-Modulen in der Produktion

8

Ich möchte Abhängigkeiten mit System.import() asynchron laden können, ohne ES6 während der Produktionslaufzeit auf ES5 umstellen zu müssen. Ich möchte, dass diese Module in separate ES5-Module transpiliert werden, die nur bei Bedarf abgerufen werden. Ich möchte nicht, dass sie Teil des Hauptbündels sind.

Dev-Workflow

Die Module werden während meiner Produktion tatsächlich geladen, was eigentlich besorgniserregend ist, da ich keine Abhängigkeiten enthalten möchte, die eine Übertragung ermöglichen.

Ich habe einen Workflow, in dem ich jspm bundle und jspm unbundle verwende, um zwischen Entwicklungs- und Produktionskonfigurationen zu wechseln. In meiner Entwicklungsumgebung schließe ich die folgenden Skripts ein:

%Vor%

Produktions-Workflow

In der Produktion verwende ich jspm bundle --inject , um die Option bundles in System.config einzufügen. Dies lädt effektiv nur die notwendigen Dateien:

%Vor%

Wenn ich versuche, ein Modul während der Produktion asynchron mit System.import() zu laden, wird es geladen, was bedeutet, dass während der Produktion eine Transpilierung im Browser stattfindet.

Fragen

  1. Ich kann jedes meiner Module problemlos in AMD einbauen, aber wie kann ich es trotzdem machen asynchron und separat holen Sie sie mit System.import() ?

  2. Ich möchte auch sicherstellen, dass so wenig Browser-Overhead wie benötigt wird möglich, das heißt, keine Skripte, die ausführen Transpilation. Gibt es eine Möglichkeit, system.js einzuschließen, die das nicht tut? Haben Sie transpile Fähigkeiten?

Himmel 15.03.2016, 18:11
quelle

1 Antwort

0

Antwort 1

System.import () wird zum Laden von Modulen verwendet. Module sind essentielle .js-Dateien, die etwas wie eine Funktion oder ein Objekt oder eine Klasse exportieren.

Wenn Sie Ihren Code in separaten Dateien organisieren, können Sie diese entweder in den Kopf einer anderen Datei laden, indem Sie ..

verwenden %Vor%

Dies würde YM in der gesamten Datei zugänglich machen.

Oder wenn YM auf eine Schaltfläche geladen werden soll, klicken Sie stattdessen auf ..

%Vor%

Das Wichtigste ist also, Ihren Code gut in Dateien / Modulen zu organisieren.

Sie können dann einen npm-Task-Runner wie zB gulp verwenden, um die Dateien usw. zu komprimieren.

Natürlich müssen Sie in Ihrer Datei systemjs.config.js einige Zuordnungen eingeben, wie z. B. ..

%Vor%

Damit SystemJS es finden kann.

Antwort 2

JSPM hat transpile Fähigkeiten, ich bin nicht sicher, dass SystemJS tut.

Stellen Sie sicher, dass JSPM (oder Ihr Tool Ihrer Wahl) Ihre Dateien transpiliert. Dann zeigen Sie SystemJS auf die transpilierten Dateien.

    
danday74 29.03.2017 19:53
quelle

Tags und Links