A ma grande surprise, tsc "inline" l'import d'un petit module. j'ail10nBundles-stub.ts
const l10nBundles = new Map();
export default l10nBundles;
et quand I import l10nBundles from "l10nBundles"
(avec une paths
entrée appropriée dans tsconfig.json
) l'instruction d'importation est perdue et la définition est copiée dans le fichier js résultant.
Je ne veux pas ça. Ceci est juste un mannequin de compilation. Le "réel" l10nBundles.js
est généré par le serveur au moment de l'exécution et import
doit donc être préservé et résolu (c'est-à-dire le module importé lu depuis le serveur) par le navigateur au moment de l'exécution.
Je n'ai pas trouvé d'option pour forcer tsc à conserver l'importation. Y a-t-il? Ou puis-je éviter l'inlining par d'autres moyens?
Solution du problème
Cela m'a pris un peu plus de temps, mais ensuite j'ai pensé, hé, si je ne fournis pas de code source mais seulement des informations de type lors de la compilation, il n'y a pas de source qui puisse être intégrée, n'est-ce pas? Donc, en utilisant un fichier l10nBundles-stub.d.ts
(notez le "d") avec
export default new Map<string,Map<string,string>>();
fait l'affaire maintenant, le import
est laissé en place.
Aucun commentaire:
Enregistrer un commentaire