4.3 Workspaces(双方向同期)

Edit and Save Files with Workspaces

Workspacesは、DevToolsでの変更をローカルファイルに自動保存する機能である。CSSの調整やJavaScriptの修正をブラウザ上で行い、そのままソースコードに反映できる。開発効率を大幅に向上させる必須機能。

Workspacesとは

通常、DevToolsでCSSやJavaScriptを変更しても、ページをリロードすると変更は失われる。Workspacesを設定すると、DevToolsがローカルファイルシステムと接続され、変更が自動的にソースファイルに保存される。

機能 Workspaces未使用 Workspaces使用
CSS変更 リロードで消失 ファイルに自動保存
JS変更 リロードで消失 ファイルに保存(要リロード)
HTML変更 リロードで消失 Sourcesパネルで編集→保存可
作業フロー 変更をエディタに手動転記 DevToolsで完結
重要な制限 ElementsパネルでのDOM編集はWorkspacesでは保存されない。DOMはHTML、JavaScript、CSSの組み合わせで構成されるため、DevToolsは変更をどのファイルに保存すべきか判断できない。HTML編集はSourcesパネルで行う必要がある。

手動セットアップ

最も基本的な設定方法。任意のプロジェクトフォルダをDevToolsに追加する。

設定手順

  1. ローカルサーバーでプロジェクトを起動(例: http://localhost:8080
  2. Chromeでページを開き、F12でDevToolsを起動
  3. Sourcesパネル → 左側のWorkspaceタブをクリック
  4. Add folder to workspaceをクリック
  5. プロジェクトのルートフォルダを選択
  6. ブラウザ上部に表示される「DevToolsがフォルダへのフルアクセスを要求しています」で許可をクリック

設定が完了すると、Workspaceタブにフォルダが表示される。ファイル名の横に緑のドットが表示されれば、ネットワークリソースとローカルファイルのマッピングが成功している。

マッピングの確認方法 Sourcesパネルでファイルを開き、ファイル名タブを右クリック → 「Reveal in sidebar」を選択。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())"

自動接続の動作

  1. ローカルサーバーを起動(localhostでアクセス可能にする)
  2. DevToolsを開くと、自動的に/.well-known/appspecific/com.chrome.devtools.jsonをリクエスト
  3. 設定ファイルが見つかると、Sourcesパネル → Workspaceタブに「Connect」ボタンが表示
  4. 「Connect」をクリックし、フォルダアクセスを許可
対応バージョン 自動Workspace接続はChrome M-135以降で利用可能。M-136以降ではデフォルトで有効。それ以前のバージョンではchrome://flagsDevToolsWellKnownDevToolsAutomaticFileSystemsを有効にする必要がある。

Workspacesの使い方

CSSの編集と保存

CSSの変更は即座にページに反映され、同時にファイルにも保存される。

操作手順

  1. Elementsパネル → Stylesペインでプロパティを変更
  2. 変更は即座にページに反映
  3. ファイルタブにが表示されていれば自動保存される
  4. またはCtrl+Sで明示的に保存
新しいCSSルールの追加 Stylesペインの「+」ボタンを長押しすると、ルールを追加するファイルを選択できる。Workspaceに接続されたファイルを選ぶと、新しいルールもファイルに保存される。

JavaScriptの編集と保存

JavaScriptの変更はファイルに保存されるが、実行中のコードには即座に反映されない。

操作手順

  1. Sourcesパネル → Workspaceタブ → 編集したいJSファイルを開く
  2. コードを編集
  3. Ctrl+Sで保存
  4. ページをリロードして変更を適用
ライブリロードとの連携 開発サーバーがファイル変更を監視している場合(webpack-dev-server、Viteなど)、Workspacesでの保存をトリガーに自動リロードされる。この組み合わせにより、DevToolsでの編集が即座にページに反映される。

HTMLの編集

HTMLはSourcesパネルで直接編集する。Elementsパネルでの変更は保存されない。

操作手順

  1. Sourcesパネル → Workspaceタブ → HTMLファイルを開く
  2. HTMLを直接編集
  3. Ctrl+Sで保存
  4. ページをリロードして確認

Workspaces設定

DevTools設定画面でWorkspacesの動作をカスタマイズできる。

設定へのアクセス

  1. DevTools右上の歯車アイコン(またはF1
  2. 左メニューから「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