balise de script texte/babel la portée des variables

Tout d'abord, je comprends text/babel n'est pas pour une utilisation en production, mais je l'ai trouvé très utile pour le développement comme quand je fais une modification de mon .jsx fichier django dev serveur web de rechargement sans m'avoir rien à faire (c'est à dire de compiler le JSX JS après chaque changement).

Je ne suis pas dans le contrôle de l'environnement de compilation (par exemple, django) comme c'est un petit plugin pour un système plus vaste que je ne suis pas en développement.

Le problème est: est-ce

<script type="text/babel" src="{% static "myapp/js/main.jsx" %}"></script>

<script>
    $(function() {
      console.log(mything);
    }
</script>

mything est dans main.jsx, quelque chose d'aussi simple que:

var mything = "hello";

Si main.jsx est du javascript (et le type des balises de script est modifié en conséquence), cela fonctionnera très bien. Comme text/babel cependant, il ne fonctionnera pas parce que mything n'est pas dans la portée.

Uncaught ReferenceError: mything is not defined

Cela fait sens pour moi que je ne m'attends pas à des balises de script de différents types de partager une portée, mais je me demandais si il y a un moyen astucieux de contourner cela pour l'aide au développement?

J'ai déjà eu tout le code dans un seul text/babel bloc, mais comme il grandit, il serait bon de séparer en plusieurs JSX fichiers.

Pour l'exhaustivité. J'ai fini par suppression de l'utilisation de text/babel et au lieu de la création de mon code avec webpack.

OriginalL'auteur dpwrussell | 2015-10-13

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *