Closed sounisi5011 closed 4 years ago
対象のJSが
async
属性もdefer
属性も無い「同期実行」を求める場合は、SystemJSも<script nomodule>
で読み込む
そもそもの話をして良いか?SystemJSって、同期ロードに対応してるんだろうか?
<script type=module>
で読み込むES module用<script>
要素を追加<script nomodule>
でSystemJSを動的ロードするコードとSystemJS用ファイル群を読み込むインラインコードを追加
<script type=module>
に対応しているが、dynamic importに対応していないブラウザが存在する。<script type=module>
と<script nomodule>
で分けるのは止めたほうが良い。
もうたくさんだ!モジュールインポートを避けながらJSを書くなんて!!
というわけで、いいかげんそろそろRollupによるビルド環境を導入したい。 https://github.com/rollup/rollup-starter-code-splitting のような感じのコード分割を、HTMLの
<script>
要素を読み取って全自動で行わせる。<script>
要素を読み取る<script>
要素を置換する<script type=module>
で読み込むES module用<script>
要素を追加<script nomodule>
でSystemJSを動的ロードするコードとSystemJS用ファイル群を読み込むインラインコードを追加async
属性もdefer
属性も無い「同期実行」を求める場合は、SystemJSも<script nomodule>
で読み込むPromise
のPolyfillもロードする。可能であれば、必要性はBrowserslistで判定する。