4.3 Workspaces(双方向同期)
Edit and Save Files with Workspaces
Workspacesとは
通常、DevToolsでCSSやJavaScriptを変更しても、ページをリロードすると変更は失われる。Workspacesを設定すると、DevToolsがローカルファイルシステムと接続され、変更が自動的にソースファイルに保存される。
| 機能 | Workspaces未使用 | Workspaces使用 |
|---|---|---|
| CSS変更 | リロードで消失 | ファイルに自動保存 |
| JS変更 | リロードで消失 | ファイルに保存(要リロード) |
| HTML変更 | リロードで消失 | Sourcesパネルで編集→保存可 |
| 作業フロー | 変更をエディタに手動転記 | DevToolsで完結 |
手動セットアップ
最も基本的な設定方法。任意のプロジェクトフォルダをDevToolsに追加する。
設定手順
- ローカルサーバーでプロジェクトを起動(例:
http://localhost:8080) - Chromeでページを開き、F12でDevToolsを起動
- Sourcesパネル → 左側のWorkspaceタブをクリック
- Add folder to workspaceをクリック
- プロジェクトのルートフォルダを選択
- ブラウザ上部に表示される「DevToolsがフォルダへのフルアクセスを要求しています」で許可をクリック
設定が完了すると、Workspaceタブにフォルダが表示される。ファイル名の横に●緑のドットが表示されれば、ネットワークリソースとローカルファイルのマッピングが成功している。
自動セットアップ(devtools.json)
Chrome M-135以降では、設定ファイルを配置するだけでWorkspacesを自動的に接続できる。チーム開発での設定共有に便利。
設定ファイルの作成
プロジェクトルートに以下のディレクトリとファイルを作成する:
プロジェクト/
├── .well-known/
│ └── appspecific/
│ └── com.chrome.devtools.json
├── index.html
├── css/
└── js/
com.chrome.devtools.jsonの内容:
{
"workspace": {
"root": "C:/Users/user/projects/my-app",
"uuid": "8f6e3d9a-4b7c-4c1e-a2d5-7f9b1e3c1384"
}
}
| プロパティ | 説明 |
|---|---|
workspace.root |
プロジェクトルートの絶対パス。Windowsでもスラッシュ(/)を使用 |
workspace.uuid |
プロジェクト固有のUUID v4。プロジェクトごとに異なる値を設定 |
- Windowsでもバックスラッシュ(\)ではなくスラッシュ(/)を使用する
- パスは絶対パスで指定する(相対パスは不可)
- このファイルは
.gitignoreに追加することを推奨(パスが環境依存のため)
UUIDの生成方法
UUIDはオンラインジェネレータやコマンドで生成できる:
# PowerShell
[guid]::NewGuid().ToString()
# Python
python -c "import uuid; print(uuid.uuid4())"
# Node.js
node -e "console.log(require('crypto').randomUUID())"
自動接続の動作
- ローカルサーバーを起動(
localhostでアクセス可能にする) - DevToolsを開くと、自動的に
/.well-known/appspecific/com.chrome.devtools.jsonをリクエスト - 設定ファイルが見つかると、Sourcesパネル → Workspaceタブに「Connect」ボタンが表示
- 「Connect」をクリックし、フォルダアクセスを許可
chrome://flagsでDevToolsWellKnownとDevToolsAutomaticFileSystemsを有効にする必要がある。
Workspacesの使い方
CSSの編集と保存
CSSの変更は即座にページに反映され、同時にファイルにも保存される。
操作手順
- Elementsパネル → Stylesペインでプロパティを変更
- 変更は即座にページに反映
- ファイルタブに●が表示されていれば自動保存される
- またはCtrl+Sで明示的に保存
JavaScriptの編集と保存
JavaScriptの変更はファイルに保存されるが、実行中のコードには即座に反映されない。
操作手順
- Sourcesパネル → Workspaceタブ → 編集したいJSファイルを開く
- コードを編集
- Ctrl+Sで保存
- ページをリロードして変更を適用
HTMLの編集
HTMLはSourcesパネルで直接編集する。Elementsパネルでの変更は保存されない。
操作手順
- Sourcesパネル → Workspaceタブ → HTMLファイルを開く
- HTMLを直接編集
- Ctrl+Sで保存
- ページをリロードして確認
Workspaces設定
DevTools設定画面でWorkspacesの動作をカスタマイズできる。
設定へのアクセス
- DevTools右上の歯車アイコン(またはF1)
- 左メニューから「Workspace」を選択
Folder exclude pattern
Workspaceから除外するフォルダやファイルを正規表現で指定。デフォルトではnode_modules、.git、ビルド出力フォルダなどが除外されている。
// デフォルトの除外パターン例
node_modules/
bower_components/
\.git/
\.sass-cache/
接続の解除
Sourcesパネル → Workspaceタブ → フォルダを右クリック → 「Remove from workspace」を選択。
実践的なTips
マッピングが機能しない場合
- ローカルサーバーのルートディレクトリとWorkspaceのフォルダが一致しているか確認
- ファイルパスが完全に一致しているか確認(大文字小文字も含む)
- DevToolsを閉じて再度開く
- Chromeを再起動する
複数プロジェクトの管理
Settings → Workspaceで複数のフォルダを登録できる。プロジェクトごとに異なるWorkspaceを設定し、切り替えて使用可能。
Source Mapsとの連携
モダンフレームワーク(React、Vue、TypeScriptなど)ではSource Mapsが自動生成される。WorkspacesはSource Mapsを認識し、ビルド後のコードから元のソースファイルにマッピングできる。これにより、minifyされたコードではなく、読みやすい元のコードを編集できる。
Local Overridesとの違い
Workspacesと似た機能にLocal Overridesがある。目的と使い方が異なる。
| 機能 | Workspaces | Local Overrides |
|---|---|---|
| 目的 | ローカル開発時のファイル編集 | 任意サイトの変更を永続化 |
| 保存先 | プロジェクトフォルダ直接 | 別途指定したOverridesフォルダ |
| 対象 | localhost等の開発サーバー | 任意のWebサイト |
| ファイル構造 | 既存のプロジェクト構造を維持 | URLベースのフォルダ構造を生成 |
開発中のプロジェクトにはWorkspaces、外部サイトのデバッグや実験にはLocal Overridesを使う。詳細は次のページで解説。
[1] Set up workspaces to save changes to source files - Chrome DevTools. developer.chrome.com
[2] Automatic Workspace connection in Chrome DevTools. developer.chrome.com
[3] Workspace settings reference - Chrome DevTools. developer.chrome.com