#debugging #typescript #visual-studio-code #breakpoints
#отладка #typescript #visual-studio-code #точки останова
Вопрос:
Как скомпилировать код typescript в другую папку, сохраняя при этом возможность отладки кода?
Предположим, я хочу установить точку останова для первого console.log
файла in myapp.ts
:
class HelloTS {
public static main(): number {
console.log('Hello TS');
console.log("about to exit now")
return 0;
}
}
HelloTS.main();
и следующее tsconfig.json
:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"sourceMap": true
}
}
Контрольная точка работает нормально, пока myapp.ts
, myapp.js
, и myapp.js.map
находятся в одной папке.
Однако, когда я создаю отдельную папку для sources ( src/
) и output ( dist/
), контрольная точка не работает и также не выдает никаких ошибок.
У меня есть следующая конфигурация, которая успешно компилируется, но не обеспечивает отладку.
.vscode/tasks.json
:
{
"version": "0.1.0",
"command": "tsc",
"isShellCommand": true,
"args": [
"-p", ".",
"--rootDir", "src/",
"--outDir", "dist/"
],
"showOutput": "silent",
"echoCommand": true,
"problemMatcher": "$tsc"
}
.vscode/launch.json
:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/src/myapp.ts",
"stopOnEntry": false,
"args": [],
"cwd": "${workspaceRoot}",
"preLaunchTask": null,
"runtimeExecutable": null,
"runtimeArgs": [
"--nolazy"
],
"env": {
"NODE_ENV": "development"
},
"console": "internalConsole",
"sourceMaps": true,
"outFiles": [
"**/*.js",
"**/*.js.map"
]
},
{
"name": "Attach",
"type": "node",
"request": "attach",
"port": 5858,
"address": "localhost",
"restart": false,
"sourceMaps": true,
"outFiles": [],
"localRoot": "${workspaceRoot}",
"remoteRoot": null
},
{
"name": "Attach to Process",
"type": "node",
"request": "attach",
"processId": "${command.PickProcess}",
"port": 5858,
"sourceMaps": true,
"outFiles": []
}
]
}
Ответ №1:
Я думаю outFiles
, что атрибут в вашем launch.json
должен быть:
{
...
"outFiles": [ "${workspaceRoot}/dist/**/*" ]
...
},