2017年04月18日
川俣晶の縁側ソフトウェア技術雑記 total 4154 count

Visual Studio2017でWebプロジェクトのデバッグ実行がChromeで可能だがIEで出来ないとき

Written By: 川俣 晶連絡先

症状 §

 既存のWebプロジェクト(TypeScriptファイル含む)をVisual Studio2017で開き、デバッグ実行させたとき、WebブラウザにChromeを指定していると実行できるがIEを指定しているとエラーが出てできない。

原因 §

 プロジェクトのプロパティのTypeScriptのターゲットバージョンがEcmaScript6になっている。ChromeはEcmaScript6に対応しているがIEは対応していない。

解決方法 §

 プロジェクトのプロパティのTypeScriptのターゲットバージョンがEcmaScript5に変更する。

感想 §

「EcmaScript6は徐々に使えるようになってきているが、まあ当分はEcmaScript5を意識しないとダメだろうね」

「かなりの割合のWebブラウザが対応しているとは、非対応の人が一定数いるってことだね」

「そう。どうしても、EcmaScript6固有の何かの機能を使いたいのならともかく、別にどうでもいいのなら、TypeScriptでEcmaScript5のコードを出力させた方が良いのかもしれない」

追記 §

「なぜこういう問題が起きるのかというと、以下のような状態があるからだ」

  • EcmaScript6に設定されたプロジェクトがある
  • しかし、EcmaScript6を必須とするコードを生成するソースコードは存在しない

「設定がEcmaScript6であっても、IEで動くわけだね」

「依存コードは無いからね。でも、環境が変われば状況も変化する」

「何かの理由でEcmaScript6対応コードが入った瞬間にエラーで落ちるわけだね。たとえ、その直前まで動いていたとしても」

「そうだ。何気ないソースの書き換え一発でそうなる可能性もある。あるいは、コンパイラが生成するコードが変化した結果、そうなることもあるだろう。EcmaScriptのバージョン設定は正しく行っておこう。TypeScript活用のお約束だ」