コンテンツにスキップ

HTML/ソースマップ

出典: フリー教科書『ウィキブックス(Wikibooks)』

ソースマップ(Source Map)は、トランスパイルされたり圧縮されたりしたコードと、元のソースコードとの間のマッピング情報を提供するデバッグツールです。Webフロントエンド開発において、圧縮・変換されたコードのデバッグを容易にする重要な技術です。

ソースマップの目的

[編集]

主な機能

[編集]
  • 圧縮・トランスパイル後のコードを元のソースコードに対応付ける
  • ブラウザの開発者ツールで、変換前のオリジナルコードを表示
  • デバッグ時のエラー追跡を正確に行う

生成方法

[編集]

ビルドツールによるソースマップ生成

[編集]

多くのビルドツールは、ソースマップ生成をサポートしています:

Webpack

[編集]
devtool: 'source-map'

Babel

[編集]
{
  "presets": ["@babel/preset-env"],
  "sourceMaps": "inline"
}

TypeScript

[編集]
{
  "compilerOptions": {
    "sourceMap": true
  }
}

ソースマップの種類

[編集]

マッピングレベル

[編集]
  • ライン・マッピング: 各行の対応関係のみ
  • 詳細マッピング: 行と列の正確な対応関係

ソースマップの形式

[編集]
  1. インラインソースマップ
  2. 外部ソースマップファイル
  3. データURIのソースマップ

HTML内でのソースマップの指定

[編集]

スクリプトタグでの宣言

[編集]
<script src="script.min.js" sourcemap="script.js.map"></script>

HTTP応答ヘッダー

[編集]
SourceMap: /path/to/sourcemap.js.map
X-SourceMap: /path/to/sourcemap.js.map

セキュリティ考慮事項

[編集]
  • 本番環境では通常、ソースマップを無効化または制限
  • 機密情報が露出するリスクに注意

ブラウザサポート

[編集]
  • Chrome Developer Tools
  • Firefox Developer Tools
  • Safari Web Inspector
  • Microsoft Edge DevTools

メリットとデメリット

[編集]

メリット

[編集]
  • デバッグの容易さ
  • 本番環境でのコード最適化
  • トランスパイル言語でのデバッグ支援

デメリット

[編集]
  • ファイルサイズの増加
  • パフォーマンスへの若干の影響
  • セキュリティリスク

実装のベストプラクティス

[編集]
  1. 開発環境では常に有効化
  2. 本番環境では慎重に管理
  3. 機密情報を含むソースマップは公開しない

関連技術

[編集]

参考資料

[編集]