こんにちは。beaglesoftの真鍋です。
TypeScriptで開発をしていて、実行しようとしたときに見慣れないエラーが表示されて2時間くらいはまりました。この手のものははまって経験値高めるしかないんですかね。
11 の行 http://localhost:49341/Scripts/xxxx.ts、列 1 で重大な JavaScript エラーが検出されました\n\nSCRIPT1004: ';' がありません。
開発環境はVisualStudio 2015で動作していたブラウザはIE 11です。
ちなみに、Chromeだと以下のようなエラーメッセージになります。
Uncaught ReferenceError: SearchSubWindow is not defined
いや、本当に何が何やらわからず、かなりいろいろと設定を考えたりしました。キャッシュじゃないかとかいろいろ。ただ、後から思えば問題の端緒は結構転がっていたんですよね。
これ、何が原因だったかというと、BundleConfig.cs
に定義しているJavaScriptのファイルの拡張子がts
だったのが原因でした。
public class BundleConfig { // バンドルの詳細については、http://go.microsoft.com/fwlink/?LinkId=301862 を参照してください public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-{version}.js")); bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include( "~/Scripts/jquery.validate*")); bundles.Add(new ScriptBundle("~/bundles/libs").Include("~/Scripts/lib/momentjs/moment.min.js", "~/Scripts/lib/mathjs/math.min.js", "~/Scripts/lib/dhtmlx/dhtmlx.js")); bundles.Add(new ScriptBundle("~/bundles/ts").Include( "~/Scripts/Commons/Ajax/iExecuteCallback.js", "~/Scripts/Commons/numericUtils.js", ... "~/Scripts/Hoge/typescriptFile.ts", // このファイルの拡張子が ts になっている!! ... } }
本当に単純な間違いなのですが、原因と起こりうる事象の関連がつかめなくて全然違うところを探し回ってました。