3

项目根目录的 .settings 中的 tasks.json

{
    "version": "0.1.0",
    "command": "gulp",
    "isShellCommand": true,
    "tasks": [
    {
        "taskName": "dev",
        "args": [],
        "isBuildCommand": true,
        "problemMatcher": [
        "$tsc",
        "$jshint"
        ]
    },
    {
        "taskName": "tslint",
        "fileLocation": ["absolute"],
        "problemMatcher": [
        {
            "pattern": {
            "regexp": "\\[[^\\]]+\\] \\[[^\\]]+\\] (\\S+) \\([^\\)]+\\) ([^\\[]+)\\[(\\d+), (\\d+)\\]: (.+)",
            "file": 2,
            "line": 3,
            "column": 4,
            "severity": 1,
            "message": 5
            }
        }
        ]
    }
    ]
}

tslint 任务的示例输出:

[17:35:12] [gulp-tslint] error (no-unused-variable) C:\repo\IgnitionOne\stable\prototype-coresettings\src\server\controllers\userController.ts[38, 9]: unused variable: 'test'

未转义的正则表达式:

\[[^\]]+\] \[[^\]]+\] (\S+) \([^\)]+\) ([^\[]+)\[(\d+), (\d+)\]: (.+)

当我在在线测试工具上测试我的正则表达式时,它会正确地拉出所有组。当我使用 CTRL+SHIFT+MI 查看 vs 代码中的问题时,看到文件路径、名称和消息都正确的错误。但是,当我单击错误时,我得到:

打开“userController.ts”时出错(找不到文件)。

如果我从那里单击创建文件:

ENOENT:没有这样的文件或目录,mkdir 'c:\repo\IgnitionOne\stable\prototype-coresettings\c:'

我和一位开发人员一起查看了它,目前尚不清楚为什么会发生这种情况。就好像它使用的是相对于工作区根目录的文件位置,并且只匹配文件组中的“c:”。关于未正确设置的任何想法?

4

0 回答 0