Po pierwsze, rozumiem, że text/babel
nie jest do użytku w produkcji, ale okazało się, że jest całkiem użyteczne dla rozwoju, ponieważ po wprowadzeniu zmiany w moim pliku .jsx
serwer Django zostanie przeładowany bez konieczności wykonywania żadnych czynności cokolwiek (tj. kompilacja JSX do JS po każdej zmianie).znacznik tekstu skryptu/zakres zmiennej babel
Nie kontroluję środowiska kompilacji (np. Django), ponieważ jest to niewielka wtyczka do większego systemu, którego nie rozwijam.
Problem jest taki:
<script type="text/babel" src="{% static "myapp/js/main.jsx" %}"></script>
<script>
$(function() {
console.log(mything);
}
</script>
Gdzie mything
jest w main.jsx
, coś tak prostego jak:
var mything = "hello";
Jeśli main.jsx
jest JavaScript (oraz rodzaj znaczników skryptu zostanie odpowiednio zmieniona) to zadziała dobrze. Jednak jako text/babel
nie zadziała, ponieważ mything
nie znajduje się w zasięgu.
Uncaught ReferenceError: mything is not defined
to sens dla mnie, bo nie spodziewałbym tagów skryptu różnych typów podzielić się zakres, ale zastanawiam się, czy jest jakiś sprytny sposób obejść ten problem do pomocy rozwoju?
Poprzednio miałem cały kod w jednym bloku text/babel
, ale w miarę jego rozwoju dobrze byłoby podzielić go na kilka plików JSX.
Dla kompletności. W końcu usunąłem użycie 'text/babel' i zamiast tego budowałem swój kod za pomocą pakietu internetowego. – dpwrussell