No need to transpile with @babel/node
Basic setup (sourcemaps – always)
Note the sourceMaps and retainLines options in .babelrc:
{
"presets": [
"@babel/preset-env"
],
"sourceMaps": "inline",
"retainLines": true
}
And then in launch.json:
{
"type": "node",
"request": "launch",
"name": "Debug",
"program": "${workspaceFolder}/index.js",
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/babel-node",
"runtimeArgs": [
"--nolazy"
]
}
Advance setup (sourcemaps – development only)
You can tweak the above so only to generate source-maps/retainLines in development mode:
{
"presets": [
"@babel/preset-env"
],
"env": {
"development": {
"sourceMaps": "inline",
"retainLines": true
}
}
}
And:
{
"type": "node",
"request": "launch",
"name": "Debug",
"program": "${workspaceFolder}/index.js",
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/babel-node",
"runtimeArgs": [
"--nolazy"
],
"env": {
"BABEL_ENV": "development"
}
}
Notes
- Currently
"type": "pwa-node"(see more) doesn’t work with this setup. - For
"--nolazy"see this. "BABEL_ENV": "development"– Unless a different value is set the default isdevelopment, so adding this in the launch config is not essential (but does make things more explicit).