在VS Code中调试时如何使用cpx?

时间:2018-06-14 14:28:30

标签: visual-studio-code vscode-tasks vscode-debugger

我想使用cpx作为Visual Studio Code中我的一个调试配置的后台任务。但它没有输出并导致此错误: The task 'npm: cpx' cannot be tracked.

由于cpx在不到一秒的时间内完成了它的工作,我不需要跟踪它。有没有办法告诉VS Code只是为了运行任务而不是跟踪它?

这是我的tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "script": "cpx",
            "type": "npm",
            "isBackground": true
        }
    ]
}

1 个答案:

答案 0 :(得分:1)

如果您只想执行一次任务,只需设置isBackground: false

否则,在Visual Studio Code启动调试器之前,它需要知道后台任务何时完成其初始作业。它通过使用问题匹配器观察任务输出而发生,但正如您所指出的,默认情况下cpx不会输出任何内容。这是我的建议:

  1. --verbose标记传递给cpx,这会给我们一些以Be watching...
  2. 结尾的输出
  3. 将以下问题匹配器用于您的任务:
  4. {
        "version": "2.0.0",
        "tasks": [
            {
                "script": "cpx",
                "type": "npm",
                "isBackground": true,
                "problemMatcher": {
                    "background": {
                        "activeOnStart": true, // monitoring should happen immediately after start
                        "beginsPattern": "^whatever", // irrelevant
                        "endsPattern": "^Be watching.*"  // pattern indicating that task is done
                    },
                    // we don't need pattern section but it's required by the schema.
                    "pattern": [
                        {
                            "regexp": "^whatever",
                            "file": 1,
                            "location": 2,
                            "message": 3
                        }
                    ]
                }
            }
        ]
    }