首先,我明白text/babel
是不是用于生产,但我发现它对开发非常有用,因为当我对我的.jsx
文件进行更改时,django的开发web服务器将重新加载,而无需我做任何东西(即每次更改后将JSX编译为JS)。脚本标签文本/巴贝尔变量范围
我不是在控制构建环境(例如django),因为这是一个我没有开发的较大系统的小插件。
问题是这样的:
<script type="text/babel" src="{% static "myapp/js/main.jsx" %}"></script>
<script>
$(function() {
console.log(mything);
}
</script>
凡mything
为main.jsx
,就这么简单的东西:
var mything = "hello";
如果main.jsx
是JavaScript的(和脚本标签的类型也相应改变)那么这将工作得很好。由于text/babel
虽然,它不会工作,因为mything
不在范围内。
Uncaught ReferenceError: mything is not defined
这对我来说很有意义,因为我不希望不同类型的共享范围的script标签,但我不知道是否有一些解决这个聪明的方式来帮助发展?
我以前在单个text/babel
块中拥有所有代码,但随着它的增长,将其分离为多个JSX文件将会很好。
为了完整。我最终删除了使用'text/babel',而是用webpack构建了我的代码。 – dpwrussell