Создание среды для запуска в Visual Studio Code с директивой - PullRequest
0 голосов
/ 25 октября 2018

У меня есть среда разработки, которая использует 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 указано, что задача выполняет правильную команду, но:

  1. Команда не выводит видимый вывод (я скопировал и вставил ее в оболочку, и она работаеткак положено, печать установленных переменных среды во время работы)

  2. Средство запуска все еще не может найти node на моем PATH

Я не уверен, сохраняются ли переменные среды междуpreLaunchTask и запуск.Это тот случай?Как правильно настроить direnv для настройки среды при выполнении задач в коде Visual Studio?

...