Angesichts der folgenden Typoskript Datei,auslassen "require" und "Exporte" von Typoskript emittierten AMD Abhängigkeiten
export = {};
tsc
(mit "module": "amd"
) emittieren:
define(["require", "exports"], function (require, exports) {
"use strict";
return {};
});
Allerdings würde ich es eher emittieren
define([], function() {
"use strict";
return {};
});
... und nur schließen require
oder exports
wenn ich sie explizit importieren, das heißt
import relativeRequire = require("require");
Gibt es eine Möglichkeit Typoskript zu sagen, nicht require
und exports
in emittierten AMD-Module zu emittieren (d frage es nicht den zu verwenden)?
Hinweise:
- Der Ausgang Ich schlage vor, mit dem AMD spec vollständig kompatibel ist.
- Eine leere Abhängigkeiten Array ist das only way für das Modul Null Abhängigkeiten haben (wie zum Weglassen der Abhängigkeiten Array gegenüber, die die
require
impliziert,exports
undmodule
Abhängigkeiten).
UPDATE 4. Juli 2017: Sieht aus wie das ist eigentlich eine offene Frage im Typoskript GitHub Repo ist: https://github.com/Microsoft/TypeScript/issues/669
Irgendwelche Ideen für eine pragmatische Problemumgehung, bis dies umgesetzt wird? (Oder gibt es tatsächlich eine Möglichkeit, TypeScript das zu ermöglichen?)
Ich arbeite mit einer ziemlich großen App mit mehreren tausend AMD-Modulen, von denen etwa 1300 beim App-Start geladen werden - und somit Teil der ursprünglich gelieferten Assets sein müssen. Ich habe bereits die meisten Leistungsgewinne der niedrig-hängenden Ladezeit erreicht und die Reduzierung der Asset-Größe (und vielleicht die Beseitigung unnötiger virtueller Module) ist nur ein weiterer Teil des langen Tail der kleinen Verbesserungen, die gemacht werden können. –