2016-10-10 1 views
1

Je travaille sur un panneau d'administration construit sur le modèle AdminLTE. Le modèle dépend de jquery, bootstrap et d'autres plugins personnalisés qui doivent auparavant être inclus en utilisant des balises de script dans la tête du document. J'utilise Jspm pour gérer les bibliothèques, certaines bibliothèques comme Toastr nécessiteront jQuery comme dépendance, et installeront et chargeront une autre copie de jQuery.Comment configurer SystemJS pour qu'il prenne en compte une bibliothèque déjà chargée comme jquery?

J'essaie de comprendre comment configurer SystemJS pour: a) Faire connaître SystemJS que je ne ai pas besoin d'installer une autre copie de jQuery et b) éviter double chargement de jQuery, car il est une dépendance globale qui a été précédemment chargé. Comment y parvenir?

<script src="jquery.min.js"></script> 
<script src="bootstrap.min.js"></script> 
... 
<script src="system.js"></script> 
<script> 
    System.config({ 
     "map": { 
      "jquery": window.jQuery //??? 
     } 
}); 
</script> 
<script> 
    System.import('main'). 
</script> 

Répondre

1

On dirait que vous voulez utiliser System.set

System.set('jQuery', System.newModule({'default': window.jQuery })); 

Cela suppose que le monde devrait être 'par défaut'. Vous pouvez également spécifier d'autres exportations en transmettant d'autres clés/valeurs à System.newModule.

Si vous le pouvez, il serait préférable d'importer vos globals comme les autres scripts car GLOBALS peuvent avoir des dépendances et systemjs peuvent gérer l'ordre de charge pour vous par meta config setup

+0

Vous devez ajouter ', __useDefault: true' aussi pour ceci pour fonctionner. J'ai aussi lutté avec cela et je l'ai découvert en regardant à l'intérieur du code source comment SystemJS utilise 'newModule' en interne. L'ajout de cette option a finalement résolu le problème. J'ai essayé cela pour SystemJS lui-même, pour l'enregistrer pour le nom de module ''systemjs' 'car il est déjà chargé, et cela n'a fonctionné qu'après avoir ajouté cette option. –