Repository: create-react-app
Issue: Hot reload doesn't work in Gitpod after fresh CRA install
Labels: needs triage,issue: bug report

<!--
    Please note that your issue will be fixed much faster if you spend about
    half an hour preparing it, including the exact reproduction steps and a demo.

    If you're in a hurry or don't feel confident, it's fine to report bugs with
    less details, but this makes it less likely they'll get fixed soon.

    In either case, please use this template and fill in as many fields below as you can.

    Note that we don't provide help for webpack questions after ejecting.
    You can find webpack docs at https://webpack.js.org/.
-->

### Describe the bug

I set up a fresh React project in a Gitpod workspace using create-react-app. After starting the dev server with `npm start`, hot reload doesn't work. Changes to `App.tsx` are only rendered after refreshing the browser.

The following error is displayed in the console:

> WebSocket connection to 'wss://3000-_(private GitPod URL redacted)_.gitpod.io:3000/ws' failed

Based on this error, I suspect the problem is that when using GitPod you are supposed to access open ports through these special automatically generated subdomains, that proxy connections into the workspace. So for example http://localhost:3000 is accessed through https://3000-workspace-id.gitpod.io:443, where the HTTPS port (443) is proxied to port 3000.

The dev server detects that it's running on localhost:3000 and tries to connect to wss://3000-workspace-id.gitpod.io:3000 instead, which fails.

Changing the websocket port through an environmental variable just causes the same problem on a different port number.

Here is a link to open an example of this issue in GitPod: https://gitpod.io/#https://github.com/monophthongal/create-react-app-gitpod-bug

Interestingly GitPod's own create-react-app example works fine, but is using an older version of `react-scripts`: https://github.com/gitpod-io/create-react-app

### Did you try recovering your dependencies?

<!--
  Your module tree might be corrupted, and that might be causing the issues.
  Let's try to recover it. First, delete these files and folders in your project:

    * node_modules
    * package-lock.json
    * yarn.lock

  Then you need to decide which package manager you prefer to use.
  We support both npm (https://npmjs.com) and yarn (https://yarnpkg.com/).
  However, **they can't be used together in one project** so you need to pick one.

  If you decided to use npm, run this in your project directory:

    npm install -g npm@latest
    npm install

  This should fix your project.

  If you decided to use yarn, update it first (https://yarnpkg.com/en/docs/install).
  Then run in your project directory:

    yarn

  This should fix your project.

  Importantly, **if you decided to use yarn, you should never run `npm install` in the project**.
  For example, yarn users should run `yarn add <library>` instead of `npm install <library>`.
  Otherwise your project will break again.

  Have you done all these steps and still see the issue?
  Please paste the output of `npm --version` and/or `yarn --version` to confirm.
-->

This happens on a fresh install.

### Which terms did you search for in User Guide?

<!--
  There are a few common documented problems, such as watcher not detecting changes, or build failing.
  They are described in the Troubleshooting section of the User Guide:

  https://facebook.github.io/create-react-app/docs/troubleshooting

  Please scan these few sections for common problems.
  Additionally, you can search the User Guide itself for something you're having issues with:

  https://facebook.github.io/create-react-app/

  If you didn't find the solution, please share which words you searched for.
  This helps us improve documentation for future readers who might encounter the same problem.
-->

(Write your answer here if relevant.)

### Environment

<!--
  To help identify if a problem is specific to a platform, browser, or module version, information about your environment is required.
  This enables the maintainers quickly reproduce the issue and give feedback.

  Run the following command in your React app's folder in terminal.
  Note: The result is copied to your clipboard directly.

  `npx create-react-app --info`

  Paste the output of the command in the section below.
-->
GitPod workspace accessed through Chrome 96.

```
  current version of create-react-app: 5.0.0
  running from /home/gitpod/.npm/_npx/c67e74de0542c87c/node_modules/create-react-app

  System:
    OS: Linux 5.13 Ubuntu 20.04.2 LTS (Focal Fossa)
    CPU: (16) x64 Intel(R) Xeon(R) CPU @ 2.80GHz
  Binaries:
    Node: 16.13.0 - ~/.nvm/versions/node/v16.13.0/bin/node
    Yarn: 1.22.17 - ~/.nvm/versions/node/v16.13.0/bin/yarn
    npm: 8.1.0 - ~/.nvm/versions/node/v16.13.0/bin/npm
  Browsers:
    Chrome: Not Found
    Firefox: Not Found
  npmPackages:
    react: ^17.0.2 => 17.0.2 
    react-dom: ^17.0.2 => 17.0.2 
    react-scripts: 5.0.0 => 5.0.0 
  npmGlobalPackages:
    create-react-app: Not Found
```

### Steps to reproduce

<!--
  How would you describe your issue to someone who doesn’t know you or your project?
  Try to write a sequence of steps that anybody can repeat to see the issue.
-->

1. Create a new React project with create-react-app and push to a GitHub repository.
2. Open the GitHub repository in a Gitpod workspace by adding gitpod.io# in front of the GitHub URL.
3. In the GitPod workspace, run `npm install` and `npm start`.
4. The app should open in a new tab automatically, but if not, you can do so by opening the Remote Explorer sidebar and clicking "Open Browser" next to port 3000.
5. Make any change to `App.tsx`.

### Expected behavior

<!--
  How did you expect the tool to behave?
  It’s fine if you’re not sure your understanding is correct.
  Just write down what you thought would happen.
-->

Changes should appear immediately without having to refresh the browser (hot reload).

### Actual behavior

<!--
  Did something go wrong?
  Is something broken, or not behaving as you expected?
  Please attach screenshots if possible! They are extremely helpful for diagnosing issues.
-->

Changes are not displayed until the browser is refreshed.

### Reproducible demo

https://github.com/monophthongal/create-react-app-gitpod-bug

You can open in GitPod at the following URL: https://gitpod.io/#https://github.com/monophthongal/create-react-app-gitpod-bug