我有一个静态网站(即只有 html 和客户端 JavaScript),我在本地调试时使用 python 提供服务。我有一个 VSCode 任务可以正确启动 python,并试图将该任务设置为preLaunchTask
Debugger for Chrome启动任务。期望的行为是,每当我开始调试serve
下面的任务时,可以确保为站点提供服务。
如果我正确理解后台任务,则可以设置 a beginsPattern
andendsPattern
来表示状态更改。
我期待当python回声
在 0.0.0.0 端口 8000 ( http://0.0.0.0:8000/ ) 上提供 HTTP ...
下面将向启动任务发出它已经开始的信号stdout
。problemMatcher
相反,启动任务会一直等待,直到任务的 shell 命令终止后才会继续。
可以配置任务来实现这种行为吗?
启动配置
{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:8000",
"webRoot": "${workspaceFolder}/webroot",
"preLaunchTask": "serve"
}
]
}
服务任务
{
"version": "2.0.0",
"tasks": [
{
"label": "serve",
"type": "shell",
"command": "python3 -m http.server",
"windows": {
"command": "py -m http.server"
},
"isBackground": true,
"options": {
"cwd": "${workspaceFolder}/webroot"
},
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "dedicated"
},
"problemMatcher": {
"owner": "custom",
"pattern":[
{
"regexp": "^([^\\s].*)$",
"file": 1,
"location": 2,
"message": 3
}
],
"background": {
"activeOnStart": true,
"beginsPattern":"^Serving HTTP (.*)$",
"endsPattern":"^Keyboard interrupt received, exiting(.*)$"
}
}
}
]
}