Согласно документации, можно запустить программу перед отладкой:
Чтобы запустить задачу перед началом каждого сеанса отладки,
preLaunchTask
имя одной из задач, указанных в tasks.json.
Я не видел пример синтаксиса "именованной" задачи, но в документации схемы раскрывается свойство с именем taskName
. Я попытался использовать это, чтобы связать мои задачи preLaunchTasks
Json preLaunchTasks
с задачей, но это не сработало. Когда я запустил свою программу, Visual Studio Code сообщил об этой ошибке:
Не удалось найти уникальную задачу 'launch-core'. Убедитесь, что задача существует и имеет уникальное имя.
Моя пользовательская "именованная" задача выглядела примерно так:
{
"taskName": "launch-core",
"version": "0.1.0",
"command": "C:\\utils\\mystuff.exe",
// The command is a shell script
"isShellCommand": true,
// Show the output window only if unrecognized errors occur.
"showOutput": "silent",
}
Затем я попытался изменить имя свойства с taskName
на просто name
, основываясь на этой ссылке. Это тоже не сработало.
Intellisense не дает никаких подсказок о том, как назвать задачу.
Кто-нибудь знает, как однозначно назвать задачу в файле tasks.json? Какой синтаксис? Какое название недвижимости?
В конечном итоге я хотел бы выполнить два или три процесса node.js до запуска моего собственного приложения node.js. Например, я хотел бы запустить следующие три приложения до того, как мое приложение будет запущено в отладчике:
sh -c 'cd ./manager/ && node manager.js'
sh -c 'cd ./adapter/ && node adapter.js'
sh -c 'cd ./core/ && node core.js'
Если я работаю над Windows-боксом, моя задача может выглядеть примерно так:
{
"taskName": "core-launch",
"version": "0.1.0",
// The command is tsc. Assumes that tsc has been installed using npm install -g typescript
"command": "start",
// The command is a shell script
"isShellCommand": true,
// Show the output window only if unrecognized errors occur.
"showOutput": "silent",
// args is the HelloWorld program to compile.
"args": [
"ACD-Manager",
"/B",
"/D",
"./manager/",
"node",
"manager.js"
]
}
Вышеуказанная задача с использованием возможности start
cmd. Я еще не уверен, как заставить несколько задач узла запускаться вместо одной, но я не могу даже запустить одну задачу из-за этой проблемы с именами задач.
Как я могу назвать задачу в файле tasks.json?