Home > front end >  How to pass arguments to node script from launch configuration in vscode
How to pass arguments to node script from launch configuration in vscode

Time:02-02

Why isn't my launch configuration in vscode picking up on args key? vscode Version: 1.63.2

launch.json

  "version": "0.2.0",
  "configurations": [
    {
      "command": "node ${workspaceFolder}/test.js",
      "args": ["foo"],
      "name": "test",
      "request": "launch",
      "type": "node-terminal",
    },
  ]
}

test.js

console.log("running script");
console.log(process.argv);

I press play from debug sidebar and get this in console:

$ node /Users/acohen/mp/mobileapp-client-tests/test.js
Debugger attached.
running script
[
  '/Users/acohen/.nvm/versions/node/v12.16.2/bin/node',
  '/Users/acohen/mp/mobileapp-client-tests/test.js'
]
Waiting for the debugger to disconnect...

Why isn't "foo" passed as an argument?

CodePudding user response:

Here is a config example that worked for me:

{
"configurations": [
{
    "name": "Launch Program",
    "args": ["foo"],
    "program": "${workspaceFolder}/test.js",
    "request": "launch",
    "type": "pwa-node"
}
]

}

CodePudding user response:

Ok, what I ultimately wanted to do was run a complex npm script and debug it. I re-installed vscode, and found some good docs here:

https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_launch-configuration-support-for-npm-and-other-tools

and here for using nvm: https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_multi-version-support

My launch.json looks like this:

where test_ios is the npm script to debug and 14.17.3 is the version of node (installed with nvm) to use:

  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch via npm",
      "type": "node",
      "request": "launch",
      "cwd": "${workspaceFolder}",
      "runtimeExecutable": "npm",
      "runtimeArgs": ["run-script", "test_ios"],
      "runtimeVersion": "14.17.3"
    }
  ]
}
  •  Tags:  
  • Related