How to run a command in Visual Studio Code with launch.json

前端 未结 4 2073
刺人心
刺人心 2020-12-03 00:38

Is there a way to execute an ssh command when debugging a project with .vscode/launch.json?

For example: ssh -i xxxxx.

O

相关标签:
4条回答
  • 2020-12-03 01:02

    The format changed. Visual Studio Code can create the tasks.json file for you. Inside your launch.json file and inside any configurations object, just define preLaunchTask to force auto-creation of the tasks.json template file:

    {
      "version": "0.2.0",
      "configurations": [
          {
            "type": "node",
            "request": "launch",
            "name": "launch program",
            "skipFiles": [ "<node_internals>/**"],
            "preLaunchTask": "myShellCommand",
            "program": "${workspaceFolder}/test.js"
          }
      ]
    }
    

    If you do not have file tasks.json configured:

    • launch the debugger. Visual Studio Code will inform you: "could not find the task myShellCommand"
    • select Configure TaskCreate tasks.json file from templateOthers

    Your tasks.json template file will then be created for you. Add your command to command and the name you put in preLaunchTask to label:

    {
      "version": "2.0.0",
      "tasks": [
        {
          "label": "myShellCommand",
          "type": "shell",
          "command": "echo goodfood"
        }
      ]
    }
    
    0 讨论(0)
  • 2020-12-03 01:06

    For me, I just needed an environment variable, which is different. You don't want a task for this because (at least for me) it doesn't work when the launcher is run.

    Thanks to here, I got it working like this, inside my launcher (launch.json) entry:

    "environment": [{
        "name": "ENVIRONMENT_VARIABLE_NAME",
        "value": "${workspaceFolder}/lib" //Set to whatever value you want.
    }],
    
    0 讨论(0)
  • 2020-12-03 01:08

    You can define a task in your tasks.json file and specify that as the preLaunchTask in your launch.json and the task will be executed before debugging begins.

    Example:

    In tasks.json:

    For version 0.1.0:

    {
        "version": "0.1.0",
        "tasks": [{
            "taskName": "echotest",
            "command": "echo", // Could be any other shell command
            "args": ["test"],
            "isShellCommand": true
        }]
    }
    

    For version 2.0.0 (newer and recommended):

    {
        "version": "2.0.0",
        "tasks": [{
            "label": "echotest",
            "command": "echo", // Could be any other shell command
            "args": ["test"],
            "type": "shell"
        }]
    }
    

    In launch.json:

    {
        "configurations": [
            {
                // ...
                "preLaunchTask": "echotest", // The name of the task defined above
                // ...
            }
        ]   
    }
    

    Tasks documentation: https://code.visualstudio.com/docs/editor/tasks

    Launch configuration: https://code.visualstudio.com/docs/editor/debugging#_launch-configurations

    0 讨论(0)
  • 2020-12-03 01:19

    My version of the configuration allows to just run a defined task and carried on (in my case, the task is to run the currently open Groovy file):

    "configurations": [
        {
            "name": "Launch groovy",
            "request": "launch",
            "type": "coreclr",
            "preLaunchTask": "groovy",
            "program": "cmd.exe",
            "args": ["/c"],
            "cwd": "${workspaceFolder}",
            "console": "internalConsole",
            "internalConsoleOptions": "neverOpen"
        }
    ]
    

    And the task:

    "tasks": [
        {
            "label": "groovy",
            "type": "shell",
            "command": "groovy ${file}"
        }
    ]
    
    0 讨论(0)
提交回复
热议问题