Start with React Developer Tools in the browser to inspect components, props, and state. 2. Set up VSCode debugging with Chrome or Edge using the Debugger for Chrome or Microsoft Edge Tools extension by creating a launch.json configuration that launches the app at http://localhost:3000 with source map support. 3. For server-side React (e.g., Next.js), debug Node.js code by configuring launch.json to run npm dev with node debugging enabled. 4. Use console.log and the debugger; statement strategically for quick, effective checks. 5. Optionally enable source maps in staging via package.json or Webpack config, but avoid this in production for security. Additionally, implement error boundaries to catch and log runtime React errors. Combining browser DevTools with properly configured VSCode debugging ensures seamless client and server-side debugging.
Debugging React applications in VSCode can be smooth and efficient once set up correctly. Here’s how to do it effectively using modern tools and practices.

1. Use the React Developer Tools (Browser-Based)
Before diving into VSCode-specific debugging, always start with React DevTools in the browser (Chrome or Firefox):
- Install the React Developer Tools extension.
- Open DevTools → "Components" and "Profiler" tabs to inspect component hierarchy, props, state, and performance.
This won’t use VSCode directly but is essential for diagnosing UI/state issues quickly.

2. Debug with VSCode Chrome (or Edge) via vscode-edge-devtools
or Debugger for Chrome
You can attach VSCode to a running browser instance to set breakpoints in your React code.
Step-by-step setup:
-
Install the extension:
- Go to VSCode Extensions.
- Install "Debugger for Chrome" (if using Chrome) or "Debugger for Edge".
- Alternatively, use the newer built-in "Microsoft Edge Tools for VS Code".
-
Make sure your React app is running:
npm start
This usually runs on
http://localhost:3000
. Add a launch configuration:
- In VSCode, go to Run and Debug (Ctrl Shift D).
- Click "create a launch.json file".
- Choose Chrome or Edge.
- Update the config:
{ "version": "0.2.0", "configurations": [ { "name": "Debug React in Chrome", "type": "chrome", "request": "launch", "url": "http://localhost:3000", "webRoot": "${workspaceFolder}/src", "sourceMapPathOverrides": { "webpack:///src/*": "${webRoot}/*" } } ] }
Start debugging:
- Click the Run and Debug button (green play icon).
- VSCode will open a new Chrome/Edge window.
- Set breakpoints in your
.js
or.tsx
files in VSCode — they’ll hit when code executes.
? Tip: Breakpoints work best in files that are properly mapped via source maps (Create React App handles this by default).
3. Debug with VSCode Node.js (for SSR or backend logic)
If you're using React with SSR (e.g., Next.js), you can debug server-side code directly.
Example for Next.js:
In
launch.json
:{ "name": "Debug Next.js", "type": "node", "request": "launch", "runtimeExecutable": "npm", "runtimeArgs": ["run", "dev"], "port": 9229, "cwd": "${workspaceFolder}", "console": "integratedTerminal" }
Start debugging from VSCode — breakpoints in API routes or server-side functions will now work.
4. Use console.log
and debugger
strategically
Even with advanced tools, simple methods help:
Insert
debugger;
in your code:useEffect(() => { debugger; // Pauses execution in browser when reached setData(processData(props.input)); }, [props.input]);
Use
console.log
with labels:console.log("User state:", user);
These work out of the box and are often faster for quick checks.
5. Enable Source Maps in Production (Optional)
For debugging minified code in staging environments:
- In
package.json
, set:"generateSourceMaps": true
- Or in Webpack config (if ejected), ensure
devtool: 'source-map'
.
?? Never enable source maps in production for security reasons unless necessary.
Bonus: Use Error Boundary and Logging
For runtime React errors (e.g., render errors), source maps and browser DevTools are your best bet. Consider adding an error boundary:
class ErrorBoundary extends React.Component { componentDidCatch(error, info) { console.error("React error:", error, info); } render() { return this.props.children; } }
Wrap components to catch and log issues.
Basically, the key is combining browser DevTools with VSCode’s debugging power via proper launch configs. Once set up, you can debug both client and server code seamlessly.
Not complicated — but easy to miss a step.
The above is the detailed content of How to debug React in VSCode. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

There are three ways to change the default terminal in VSCode: setting through a graphical interface, editing settings.json file, and temporary switching. First, open the settings interface and search for "terminalintegratedshell" and select the terminal path of the corresponding system; secondly, advanced users can edit settings.json to add "terminal.integrated.shell.windows" or "terminal.integrated.shell.osx" fields and escape the path correctly; finally, you can enter "Terminal:SelectD through the command panel

1. Confirm whether the command is installed 2. Check the terminal shell type 3. Update the PATH environment variable 4. Restart VSCode or terminal. When you enter a command in the VSCode terminal, you should first check whether the command has been installed correctly and can be verified through other terminals of the system; secondly, confirm the shell type used by VSCode and check its configuration file; then make sure that the path where the command is located has been added to the PATH environment variable, and manually add and reload the configuration if necessary; finally close and reopen the terminal or restart VSCode to make the changes take effect.

TosyncVSCodesettingsacrossdevices,signinwithaGitHuborMicrosoftaccount,customizewhatgetssynced,andmanuallytriggersyncwhenneeded.First,openVSCodeandsigninviatheprofileiconorCommandPaletteusing"Sync:TurnonSync".Next,choosewhattosyncsuchassetti

When the "Timedoutwaitingforthedebuggertoattach" issue occurs, it is usually because the connection is not established correctly in the debugging process. 1. Check whether the launch.json configuration is correct, ensure that the request type is launch or attach and there is no spelling error; 2. Confirm whether the debugger is waiting for the debugger to connect, and add debugpy.wait_for_attach() and other mechanisms; 3. Check whether the port is occupied or firewall restricted, and replace the port or close the occupied process if necessary; 4. Confirm that the port mapping and access permissions are configured correctly in a remote or container environment; 5. Update VSCode, plug-in and debug library versions to solve potential

VSCode workspace is a .code-workspace file that saves project-specific configurations. 1. It supports multi-root directory, debug configuration, shortcut key settings and extension recommendations, and is suitable for managing different needs of multiple projects. 2. The main scenarios include multi-project collaboration, customized development environment and team sharing configuration. 3. The creation method is to save the configuration through the menu File>SaveWorkspaceAs.... 4. Notes include distinguishing between .code-workspace and .vscode/settings.json, using relative paths, and avoiding storing sensitive information.

There are two ways to set environment variables for VSCode terminals on Linux: one is to use the terminal.integrated.env.linux configuration item to define variables that are only used by VSCode; the other is to modify the shell configuration file to take effect globally. 1. In VSCode, add variables such as "MY_VAR":"my_value" by setting the terminal.integrated.env.linux field. This method only affects the VSCode terminal; 2. Modify shell configuration files such as ~/.bashrc or ~/.zshrc and add exportMY

To set debug environment variables in VSCode, you need to use the "environment" array configuration in the launch.json file. The specific steps are as follows: 1. Add "environment" array to the debugging configuration of launch.json, and define variables in key-value pairs, such as API_ENDPOINT and DEBUG_MODE; 2. You can load variables through .env files to improve management efficiency, and use envFile to specify file paths in launch.json; 3. If you need to overwrite the system or terminal variables, you can directly redefine them in launch.json; 4. Note that

To access the settings.json file of VSCode, you can directly open it through the command panel (Ctrl Shift P or Cmd Shift P). The default storage location of the file varies according to the operating system. Windows is in %APPDATA%\Code\User\settings.json, macOS is in $HOME/Library/ApplicationSupport/Code/User/settings.json, Linux is in $HOME/.config/Code/User/
