最初に、私はtext/babel
が本番用ではないことを理解していますが、私が.jsx
ファイルに変更を加えたときに開発にとって非常に有用だとわかりました。djangoのdevウェブサーバーは、何か(JSXをJSにコンパイルするたびにコンパイルします)。スクリプトタグtext/babel変数スコープ
ビルド環境(例えば、django)は私が開発していない大規模なシステム用の小さなプラグインであるため、私はビルド環境を管理していません。
問題はこれです:
mything
は
main.jsx
、のような単純なものである
<script type="text/babel" src="{% static "myapp/js/main.jsx" %}"></script>
<script>
$(function() {
console.log(mything);
}
</script>
:main.jsx
はjavascriptのである(とスクリプトタグの種類はそれに応じて変更された)場合
var mything = "hello";
これはうまくいくでしょう。しかし、mything
は範囲外であるため、text/babel
として機能しません。
Uncaught ReferenceError: mything is not defined
私はスコープを共有するために、異なる種類のスクリプトタグを期待していないので、これは私には理にかなっているが、開発を支援するために、この周りにいくつかの巧妙な方法がある場合、私は思ったんだけど?
私はこれまですべてのコードを単一のtext/babel
ブロックに入れましたが、それが成長するにつれて、いくつかのJSXファイルに分割するのが良いでしょう。あまりにも深くバベルソース(https://github.com/babel/babel/blob/master/packages/babel/src/api/browser.jsを見て)に飛び込むなし
完全性のために。私は 'text/babel'の使用を取り除き、代わりにwebpackで自分のコードを構築しました。 – dpwrussell