sourceMappingURL と sourceURL の構文を変更しました

ソースマップまたは sourceURL(どちらも HTML5 Rocks Primer on Sourcemaps で説明しています)を使用すると、Chrome コンソールに "/*@ sourceMappingURL=" source mapping URL declaration is deprecated, "/*# sourceMappingURL=" declaration should be used instead. のような警告が表示されることがあります。

SourceMapping DevTools のスクリーンショット

こちらが原因です。

引く力

IE JScript エンジンで条件付きコンパイルを有効にするように //@cc_on が解釈された後、ページで検出されたときは常に、//@ sourceMappingURL が IE との競合であることが見つかりました。ここでは特に、以前のバージョンの HTML5 Shiv が問題の一つとなっています。

仕様の変更

//@ sourceMappingURL 構文は Sourcemap V3 仕様で定義されています。これは //# 構文を使用するように変更されました。

sourceURL

//@ sourceURL も仕様で定義され、一貫性を保つために //# 構文と一致するよう作成されています。sourceURL の動作の詳細を確認してください。Ember の minispade、Google の concatenate.js などで使用されています。Chrome では、評価対象の JS に加えて、インライン スクリプトとインライン スタイルでも sourceURL がサポートされています。

ブラウザ DevTools での実装は完了です。

  • Safari Inspector で、sourceMappingURL と sourceURL で //# がサポートされるようになりました
  • sourceURL に対する Firebug による変更がリリースされました。
  • Firefox は sourceMappingURL の変更に到達しています。sourceURL のチケットはこちらです。
  • Chrome DevTools で、sourceMappingURL と sourceURL の変更が行われました。また、非推奨の //@ 構文の使用についても警告します。

これらの変更は安定版リリースになりますが、両方の構文を同時に使用してツールを完全にサポートすることも、ニーズに応じてすぐに # 構文に移行することもできます。