When debugging in vscode I'd like to make some "blackboxing" and do not enter into code I didn't write. How can I do this?
-
Did we collectively stop calling it 'blackboxing' as of 2023 because of racial injustice? Seems like the word 'blackbox' isn't used in any of the developer tools at this point. – fivestones Jun 13 '23 at 06:54
9 Answers
In your launch or attach debug task you can enter a
"skipfiles"
option which is
"An array of file or folder names, or path globs, to skip when debugging."
For example, from skipping node internals during debugging
"skipFiles": [
"${workspaceFolder}/node_modules/**/*.js",
"${workspaceFolder}/yourLibToSkip/**/*.js"
]
Also, there is a "magic reference" to the built-in core node modules you can use:
"skipFiles": [
"<node_internals>/**/*.js"
]
-
1could you kindly provide some example, I still cannot prevent entering to different dependencies folders inside of "node_modules" folder (i.e. ./node_modules/react-dom/lib/...), when debugging . part of launch task is `"skipFiles":"[./node_modules/**]"` – Pavel L Dec 03 '17 at 10:53
-
1
-
This doesn't work for flutter. Can you please show us the full example for flutter please? This looks like for javascript – Tomas Baran Jun 20 '20 at 19:43
-
20That "magic reference" doesn't work. I've downloaded VSCode today, debugged a TypeScript project, and am still ending up in `async_hooks.js`. – Dan Dascalescu Jul 01 '20 at 22:17
-
Did you try the ` "${workspaceRoot}/node_modules/**/*.js"` version as well? – Mark Jul 01 '20 at 22:27
-
7Although `"skipFiles":["
/**"]` works for debug sessions which are NOT attached, it doesn't seem to work in case of attaching a process. – Craig Hicks Jul 13 '20 at 17:38 -
Then how to add automatically generated files into skipfiles? – Abdulhakim Zeinu Feb 05 '21 at 15:24
-
Sometimes it needs to specify the file to ignore without 'js' extension example: "
/internal/async_hooks", " – Omtechguy Jun 15 '21 at 13:56/internal/inspector_async_hook"
I was confused on where to put the setting, so just in case, if you want to skip both node_modules
deps and node_internals
files, your .vscode/launch.json
file should look something like this:
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug Tests",
"type": "node",
"request": "launch",
...
"skipFiles": ["<node_internals>/**", "${workspaceFolder}/node_modules/**/*.js"]
}
]
}

- 1,093
- 13
- 22
-
1This was the answer that worked for me debugging a ReactJS app using Chrome on Windows. – ggariepy Oct 06 '21 at 16:14
-
I was trying with lots of other answers to this question and none of them worked. Turns out my problem was that I had skipFiles as a sibling to configurations instead of as a child. This fixed it for me. Thanks! – fivestones Jun 13 '23 at 06:52
Only this worked for me.
"debug.javascript.terminalOptions": {
"skipFiles": [
"<node_internals>/**"
]
}

- 1,380
- 12
- 28
Just to amplify on Mauro Aguilar's correct answer, here are the complete contents of my launch.json file. Note that I am debugging a ReactJS app (circa 2021) with VS Code 1.60.2 on Windows 10 using Chrome v.94. If you're using a Linux machine or a Mac, YMMV.
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "pwa-chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:3000",
"webRoot": "${workspaceFolder}",
"skipFiles": ["<node_internals>/**/*.js", "${workspaceFolder}/node_modules/**/*.js"]
},
]
}
this is my launch.json file (it works for me):
{
"version": "0.2.0",
"configurations": [
{
"type": "edge",
"request": "launch",
"name": "Launch Edge against localhost",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}",
"skipFiles": [
"${workspaceFolder}/node_modules/**/*.js"
]
}
]
}

- 1,398
- 11
- 17
- 25

- 19
- 3
For flutter apps, add to your user settings the following:
"debugExternalPackageLibraries": false,
"dart.debugSdkLibraries": false,

- 1,570
- 2
- 20
- 37
For some reason, I've needed to add both types of skip file entries,
"skipFiles": [
"${workspaceFolder}/node_modules/**/*.js",
"<node_internals>/**"
],
This seems to have resolved the issue.

- 2,048
- 1
- 32
- 55
"dart.debugExternalLibraries": false,
"dart.debugSdkLibraries": false,
If I add this, the debug stop after a few steps into

- 711
- 6
- 21

- 1
- 1
-
They renamed `dart.debugExternalLibraries` to: `dart.debugExternalPackageLibraries` – Tomas Baran Jul 13 '23 at 19:22
For Typescript built with Webpack, I had to put the exclusions in launch.json - putting them in settings.json/terminalOptions had no effect.
Also, I had to exclude the pattern of the generated files, not the source files. In my case it looks like:
"skipFiles": [
"<node_internals>/**",
"**/vendors-*",
],

- 1,749
- 16
- 11