Ошибка: обнаружение задачи машинописного текста не добавило задачу для следующей конфигурации

Я пытаюсь указать путь в tasks.json для задачи типа машинописного текста:

{
    "version": "2.0.0",
    "tasks": [
        {   
            "identifier": "tsc-client", 
            "label": "tsc-client", 
            "type": "typescript",
            "tsconfig": "src/client/tsconfig.json",
            "problemMatcher": [
                "$tsc"
            ]
        },
        {   
            "identifier": "tsc-server", 
            "label": "tsc-server", 
            "type": "typescript",
            "tsconfig": "src/server/tsconfig.json",
            "problemMatcher": [
                "$tsc"
            ]
        },
        {
            "identifier": "build-all",
            "label": "build-all",
            "dependsOn": ["tsc-client", "tsc-server"]
        }
    ]
}

то в моем launch.json у меня есть:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "preLaunchTask": "tsc-client",
            "name": "Launch Program",
            "program": "${workspaceFolder}/server/server-repsic.js"
        }
    ]
}

Я запускаю его и получаю:

Error: The typescript task detection didn't contribute a task for the following configuration:
{
    "identifier": "tsc-server",
    "label": "tsc-server",
    "type": "typescript",
    "tsconfig": "src/server/tsconfig.json",
    "problemMatcher": [
        "$tsc"
    ]
}
The task will be ignored.

Я проверяю, что в корневом пути у меня есть src/server/tsconfig.json и src/client/tsconfig.json. Также я набираю в консоли:

tsc -p src/client/tsconfig.json

и команда работает нормально.


person Emilio Platzer    schedule 08.04.2018    source источник
comment
Я думаю, вам нужно использовать $workSpaceRoot   -  person Aluan Haddad    schedule 09.04.2018
comment
@ Эмилио, тебе наконец удалось решить проблему? Вы помните, что было исправлено?   -  person Peter Liapin    schedule 11.03.2019


Ответы (3)


В моем случае проблема была вызвана тем, что VSCode не читал tasks.json на лету. т.е. Мне нужно перезапустить VSCode, когда я изменяю tasks.json. После перезагрузки все работает нормально. Вот похожее обсуждение, говорят:

Была проблема, что tasks.json не подвергался повторной обработке после изменения, если задача не была запущена ранее. Это исправлено для следующих выпусков. Однако похоже, что люди получают это даже без редактирования tasks.json.

Комментарий был добавлен еще в 2017 году, но похоже проблема с перезагрузкой еще не решена (у меня VSCode 1.32.1).

person Peter Liapin    schedule 11.03.2019
comment
Благодарю. То же самое, я только что перезапустил VSCode. - person Artem Beziazychnyi; 16.12.2020

Я, вероятно, немного опоздал, но это может помочь кому-то еще.

У меня была точно такая же проблема, и после некоторой возни я решил проблему, заменив косую черту / двойной косой чертой \\ в путях.

Например, замена

"tsconfig": "src/server/tsconfig.json",

by

"tsconfig": "src\\server\\tsconfig.json",

отказ от ответственности: я тестировал это только в Windows. Учитывая, что косая черта является стандартом для любой другой платформы, это может не работать на других платформах :/.

person Benjamin Blois    schedule 26.04.2018
comment
Странно: после обновления до VSC версии 1.35 мне пришлось изменить \ на /, чтобы избежать этой ошибки (Windows). - person Willem; 12.06.2019

У меня только что была обратная проблема, о которой @Benjamin Blois сообщил выше: все обратные двойные косые черты в путях для машинописных задач в tasks.json теперь должны были быть заменены косой чертой. Меня устраивает, это более читабельно, не требует экранирования и т. д.

Было:

{ ... "tsconfig": "src\\project-foo\\tsconfig.json" ... }

Изменился на:

{ ... "tsconfig": "src/project-foo/tsconfig.json" ... }
person Nicholas Petersen    schedule 24.06.2019