Создание среды для запуска в Visual Studio Code с директивой
У меня есть среда разработки, которая использует direnv
указать PATH
для данного набора исполняемых файлов. Amonth эти исполняемые файлы есть node
, Преимущество этой установки заключается в управлении версиями программного обеспечения, чтобы они всегда были актуальными для нашей команды.
Я хотел бы запустить некоторые тесты в режиме отладки, поэтому я следовал инструкции в официальной документации VS Code и установил следующее:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/node_modules/mocha/bin/mocha",
"args": [
"-r",
"ts-node/register",
"src/**/*.spec.ts"
],
"outFiles": [
"${workspaceFolder}/**/*.js"
]
}
]
}
Это, конечно, не удалось настроить PATH
в соответствии с нашими .envrc
файл, следовательно, не удалось найти node
,
Я сначала попытался слепо добавить предоставленную сообществом direnv
Плагин, на который я надеялся, мог бы позаботиться обо мне, но, очевидно, не смог.
Затем я попытался использовать preLaunchTask
Итак, я подготовил следующую задачу:
{
"version": "2.0.0",
"tasks": [
{
"label": "direnv",
"type": "shell",
"command": "direnv allow ${workspaceFolder}"
}
]
}
А затем сослались на это в спецификации запуска:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/node_modules/mocha/bin/mocha",
"args": [
"-r",
"ts-node/register",
"src/**/*.spec.ts"
],
"preLaunchTask": "direnv",
"outFiles": [
"${workspaceFolder}/**/*.js"
]
}
]
}
На вкладке " Вывод " я вижу, что задача выполняет правильную команду, но:
Команда не выводит видимый вывод (я скопировал и вставил его в оболочку, и она работает как положено, печатая заданные переменные среды во время работы)
Лаунчер все еще не может найти
node
на моемPATH
Я не уверен, что переменные среды сохраняются между preLaunchTask
и запуск. Это тот случай? Как я могу правильно настроить direnv
настроить среду для меня при запуске задач в коде Visual Studio?