- bounty将于明天到期**。此问题的答案可获得+200声望奖励。Tsar Bomba正在寻找规范答案。
我在一个VS Code示例中调试了一个微服务项目,我使用launch.json中的Compounds来启动/调试。
有一个"元数据"服务,所有其他服务都依赖于它,因此它需要在任何其他服务启动之前运行。
我已经解决了这个问题,在过去的10个月里,它对我来说工作得很顺利,但最近它自发地坏了。
这是我找到的。
- 启动. json:*
化合物:
{
"name": "API-only",
"stopAll": true,
"configurations": [
"Metadata API",
"Auth API"
]
}
......以及组合中的各个API配置:
{
"type": "node",
"request": "launch",
"name": "Metadata API",
"program": "${workspaceFolder}/metadata-api/bin/www",
"envFile": "${workspaceFolder}/metadata-api/.env",
"skipFiles": [
"<node_internals>/**/*.js",
"${workspaceRoot}/node_modules/**/*.js"
],
"presentation": {
"hidden": false,
"group": "apis",
"order": 1
}
},
{
"type": "node",
"request": "launch",
"name": "Auth API",
"program": "${workspaceFolder}/auth-api/bin/www",
"envFile": "${workspaceFolder}/auth-api/.env",
"skipFiles": [
"<node_internals>/**/*.js",
"${workspaceRoot}/node_modules/**/*.js"
],
"preLaunchTask": "Preload Delay",
"presentation": {
"hidden": true,
"group": "",
"order": 1
}
}
你可以看到"preLaunchTask"是在Auth API中设置的,而不是在Metadata API中设置的。
- 任务. json *:
{
"version": "2.0.0",
"tasks": [
{
"label": "Preload Delay",
"type": "shell",
"command": "sleep 3",
"windows": {
"command": "ping 127.0.0.1 -n 3 > nul"
},
"group": "none",
"presentation": {
"reveal": "silent",
"panel": "shared",
"revealProblems": "onProblem"
}
}
]
}
我以前可以在VSC调用堆栈面板中先看到元数据加载,然后在3秒后看到Auth。现在,它们都立即出现,而且经常出现,Auth失败是因为它不再考虑等待元数据先加载的延迟,所以它可以调用它并加载自己。
当然,如果我先手动启动Metadata,或者手动暂停Auth以等待Metadata加载,它每次都能正常工作。
这些配置在过去的10个月里都没有改变,所以我怀疑最近的VSC更新已经破坏了这个配置?还有别的方法吗?我没有找到太多可以继续下去的东西。
1条答案
按热度按时间vhmi4jdf1#
我浏览了VS代码文档,发现tasks.json有两个问题。
1-您需要为上面提到的场景分别创建两个不同的任务,例如
2-您需要设置“dependsOrder”:“排序”并配置依赖项,例如
了解更多关于复合任务的信息?祝你好运!