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:
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:
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
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()
?
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?
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.
Tags und Links javascript jspm systemjs