diff --git a/README.md b/README.md index 04788b1ff..7a210647c 100644 --- a/README.md +++ b/README.md @@ -224,6 +224,96 @@ $ ./file.ts hello argv: [ 'hello' ] ``` +### VS Code Debugging + +#### Setup + +Create the following configuration file in your project to setup debugging in VS Code: + +`.vscode/launch.json` +```json5 +{ + "version": "0.2.0", + + "configurations": [ + /* + Each config in this array is an option in the debug drop-down + See below for configurations to add... + */ + ], +} +``` + +#### Debugging method 1: Run tsx directly from 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": "${workspaceRoot}/node_modules/.bin/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 + "/**", + + // Ignore all dependencies (optional) + "${workspaceFolder}/node_modules/**", + ], + } + ``` + +2. In VSCode, open the file you want to run + +3. Go to VSCode's debug panel, select "tsx" in the drop down, and hit the play button (F5). + +#### Debugging method 2: Attach to a running Node.js process + +> This method works for any Node.js process and it's 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 + "/**", + + // 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). + +See the [VSCode documentation on _Launch Configuration_](https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_launch-configuration) for more information. +