У меня есть среда разработки, которая использует direnv
, чтобы указать PATH
на данный набор исполняемых файлов.Среди этих исполняемых файлов есть 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"
]
}
]
}
Я вижув моей вкладке Output указано, что задача выполняет правильную команду, но:
Команда не выводит видимый вывод (я скопировал и вставил ее в оболочку, и она работаеткак положено, печать установленных переменных среды во время работы)
Средство запуска все еще не может найти node
на моем PATH
Я не уверен, сохраняются ли переменные среды междуpreLaunchTask
и запуск.Это тот случай?Как правильно настроить direnv
для настройки среды при выполнении задач в коде Visual Studio?