我的launch.json
中具有以下调试配置:
{
"type": "node",
"request": "attach",
"preLaunchTask": "npm: start",
"name": "Attach",
"port": 9090
}
这是在tasks.json
中定义的任务:
{
"type": "npm",
"script": "start",
"isBackground": true
}
npm start
执行此操作:node --inspect=9090 ./src/server.js
如果我删除了调试配置的preLaunchTask
,则手动启动任务,然后启动调试会话,一切正常(调试会话附加了节点进程)。
但是,通过preLaunchTask
,在启动调试后大约10秒钟出现了此错误:“无法跟踪指定的任务”。
在将任务设置为isBackground
时,似乎该任务需要一个问题匹配器,因此我也尝试了此任务配置,但没有成功:
{
"type": "npm",
"script": "start",
"isBackground": true,
"problemMatcher": {
"background": {
"activeOnStart": true,
"beginsPattern": "^.*Using environment.*",
"endsPattern": "^.*listening.*"
}
}
}
npm: start
5:13:12 PM web.1 | Using environment: production
5:13:12 PM web.1 | Already up to date
5:13:12 PM web.1 | Debugger listening on ws://127.0.0.1:9090/22d582b8-eade-4b27-95f4-e36ad1718283
5:13:12 PM web.1 | For help see https://nodejs.org/en/docs/inspector
我需要一个问题匹配器吗?如果是这样,为什么?当我自己启动任务时,它工作正常。我没问题要报告...
答案 0 :(得分:2)
由于任务长时间运行,Vscode将在等待10秒后显示警告消息,提示无法跟踪指定的任务。您仍然可以通过按“仍然调试”按钮进行调试。但是为了避免出现此弹出窗口,我们定义了一个开始/结束模式。
problemMatcher的背景字段定义了何时将任务视为开始和结束,如控制台输出所示。您需要确保beginPattern和EndsPattern与您在终端输出中实际看到的匹配。如果您从其他地方复制示例,则该示例可能与您的实际终端输出不匹配。
我将模式定义更改为:
"background": {
"activeOnStart": false,
"beginsPattern": "^.*building.*",
"endsPattern": "^.*Compiled successfully.*"
}
在找到this blog post并修复task.json中的模式之前,我遇到了与您相同的问题。
还要检查此recipe中使用的模式。
PS:我一直使用的示例在beginPattern中具有“ Live Development Server正在监听”。但是直到显示弹出框后,该文本才会显示。
答案 1 :(得分:1)
看你的需求,对我来说,我只是去掉了preLaunchTask
,因为在这个项目中它没有用,然后提示就消失了。
// A launch configuration that compiles the extension and then opens it inside a new window
// 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": [
{
"name": "Run Extension",
"type": "extensionHost",
"request": "launch",
"args": ["--extensionDevelopmentPath=${workspaceFolder}"],
"outFiles": ["${workspaceFolder}/dist/**/*.js"]
// REMOVED
// "preLaunchTask": "${defaultBuildTask}"
},
{
"name": "Extension Tests",
"type": "extensionHost",
"request": "launch",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}",
"--extensionTestsPath=${workspaceFolder}/out/test/suite/index"
],
"outFiles": ["${workspaceFolder}/out/test/**/*.js"],
"preLaunchTask": "npm: test-watch"
}
]
}