gpt4 book ai didi

javascript - 使用 VS Code、TypeScript 和 Node.js 的断点位置不正确

转载 作者:搜寻专家 更新时间:2023-10-30 21:02:04 26 4
gpt4 key购买 nike

尝试在 VS Code 中使用 TypeScript 调试 Node 应用程序。

问题是调试器没有停在源代码中的正确位置。

应用.ts

class Foo 
{
doSomething(){
console.log("TEST");
}
}

var foo = new Foo()
foo.doSomething();

tsconfig.json

{
"compilerOptions": {
"sourceMap": true,
"target": "ES5",
"module": "commonjs"
}
}

启动.json

"configurations": [
{
// Name of configuration; appears in the launch configuration drop down menu.
"name": "Launch app.js",
// Type of configuration.
"type": "node",
// Workspace relative or absolute path to the program.
"program": "app.ts",
// Automatically stop program after launch.
"stopOnEntry": false,
// Command line arguments passed to the program.
"args": [],
// Workspace relative or absolute path to the working directory of the program being debugged. Default is the current workspace.
"cwd": ".",
// Workspace relative or absolute path to the runtime executable to be used. Default is the runtime executable on the PATH.
"runtimeExecutable": null,
// Optional arguments passed to the runtime executable.
"runtimeArgs": ["--nolazy"],
// Environment variables passed to the program.
"env": {
"NODE_ENV": "development"
},
// Use JavaScript source maps (if they exist).
"sourceMaps": true,
// If JavaScript source maps are enabled, the generated code is expected in this directory.
"outDir": null
},

任务.json

// A task runner that calls the Typescript compiler (tsc) and
// compiles based on a tsconfig.json file that is present in
// the root of the folder open in VSCode

{
"version": "0.1.0",

// The command is tsc. Assumes that tsc has been installed using npm install -g typescript
"command": "tsc",

// The command is a shell script
"isShellCommand": true,

// Show the output window only if unrecognized errors occur.
"showOutput": "silent",

// Tell the tsc compiler to use the tsconfig.json from the open folder.
"args": ["-p", "."],

// use the standard tsc problem matcher to find compile problems
// in the output.
"problemMatcher": "$tsc"
}

问题是如果我在“console.log("test");”处设置断点行,调试器跳下两行而错过了我的断点。

知道为什么会这样。据我所知,应该可以调试用 typescript 编写的 Node 应用程序。

最佳答案

我怀疑原因是您的 app.jsapp.map.js 在您的 app.ts 更改时未更新一些点。

您应该在每次运行调试器之前运行 tsc 任务,以确保生成的 JavaScript 文件反射(reflect)您在 TypeScript 文件中所做的更改。

可以在 https://github.com/jyuhuan/node-ts 找到这个(非常常见的)用例的简单项目模板。 .它定义了一个 tsc 任务来监视 TS 文件的任何更改,使生成的 JS 文件始终保持最新。

关于javascript - 使用 VS Code、TypeScript 和 Node.js 的断点位置不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33432692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com