Skip to content

VS Code debugging ​

If you use VS Code, you can configure it to use tsx to enhance your debugging experience.

To learn more about VS Code configuration, refer to the Launch Configuration documentation.

Setup ​

  1. Create the config file

    Create a launch configuration file in your project at .vscode/launch.json:

    json5
    {
        "version": "0.2.0",
        "configurations": [
            /*
             * Each config in this array corresponds to an option
             * in the debug drop-down
             */
        ],
    }
  2. Pick and choose debugging methods

Method 1: Run tsx from inside VSCode
  1. Add the following configuration to the configurations array in .vscode/launch.json:

    json5
    {
        "name": "tsx",
        "type": "node",
        "request": "launch",
    
        // Debug current file in VSCode
        "program": "${file}",
    
        /*
         * Path to tsx binary
         * Assuming locally installed
         */
        "runtimeExecutable": "tsx",
    
        /*
         * Open terminal when debugging starts (Optional)
         * Useful to see console.logs
         */
        "console": "integratedTerminal",
        "internalConsoleOptions": "neverOpen",
    
        // Files to exclude from debugger (e.g. call stack)
        "skipFiles": [
            // Node.js internal core modules
            "<node_internals>/**",
    
            // Ignore all dependencies (optional)
            "${workspaceFolder}/node_modules/**",
        ],
    }
  2. In VSCode, open the JS/TS file you want to run

  3. Go to VSCode's debug panel, select "tsx" in the drop down, and hit the play button (F5).

Method 2: Attach the VS Code debugger to a running Node.js process

This method works for any Node.js process like tsx, and is not specific to tsx.

  1. Add the following configuration to the configurations array in .vscode/launch.json:

    json
    {
        "name": "Attach to process",
        "type": "node",
        "request": "attach",
        "port": 9229,
        "skipFiles": [
            // Node.js internal core modules
            "<node_internals>/**",
    
            // Ignore all dependencies (optional)
            "${workspaceFolder}/node_modules/**",
        ],
    }
  2. Run tsx with --inspect-brk in a terminal window:

    sh
    tsx --inspect-brk ./your-file.ts
  3. Go to VSCode's debug panel, select "Attach to process" in the drop down, and hit the play button (F5).