{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "watch",
      "type": "npm",
      "script": "watch",
      "isBackground": true,
      "problemMatcher": [
        {
          "owner": "custom",
          "pattern": [
            {
              "regexp": "^PATTERN WON'T MATCH, BUT NEEDED TO BE A VALID PROBLEM MATCHER$",
              "file": 1,
              "location": 2,
              "message": 3
            }
          ],
          "background": {
            "activeOnStart": true,
            "beginsPattern": "^Compilation\\s+starting",
            "endsPattern": "^Compilation\\s+finished"
          }
        }
      ]
    }
  ]
}

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "watch",
      "type": "shell",
      "command": "yarn run watch",
      "isBackground": true,
      "problemMatcher": [
        {
          "owner": "custom",
          "pattern": [
            {
              "regexp": "^PATTERN WON'T MATCH, BUT NEEDED TO BE A VALID PROBLEM MATCHER$",
              "file": 1,
              "location": 2,
              "message": 3
            }
          ],
          "background": {
            "activeOnStart": true,
            "beginsPattern": "^Compilation\\s+starting",
            "endsPattern": "^Compilation\\s+finished"
          }
        }
      ]
    }
  ]
}

Fix watch task to run a shell command instead
Fix watch task to run a shell command instead

I believe the old implementation (`"type": "npm"`) requires [this extension](https://marketplace.visualstudio.com/items?itemName=eg2.vscode-npm-script) to be installed otherwise the "Launch Extension (development)" configuration won't work.

This PR removes that dependency by running the `yarn run watch` command as a shell process instead. I used `yarn` because this project includes a `yarn.lock`.