title: What is the difference between args and runtimeArgs in VSCode's launch.json?
body: <p>What is the difference between <code>args</code> and <code>runtimeArgs</code> in launch.json?</p>
  
  <pre><code>// Optional arguments passed to the runtime executable
  "runtimeArgs": []
  // Command line arguments passed to the program
  "args": []
  </code></pre>
  
  <p>Is the program not the same thing as the runtime executable?</p>
  
  <p><strong>Extra information and motivation behind the question:</strong></p>
  
  <p>I am developing a nodejs application. In my <code>package.json</code>, I have a <code>start</code> script:</p>
  
  <p><code>"start": "electron ./src/Main/main.js arg2"</code>, and in my app code, I access <code>process.argv[2]</code> which gets me <code>arg2</code>, so when I run <code>npm start</code>, my app works as intended.</p>
  
  <p>When I run the app from VSCode, however it doesn't, and the reason was that I wasn't supplying any additional arguments in <code>launch.json</code>. Where should I put those arguments? <code>process.argv</code> seems to contains the arguments provided in either <code>args</code> or <code>runtimeArgs</code> though it also sticks in some <code>--debug-brk</code> argument, which I don't want.</p>
  
  <p>I want to be able to use <code>process.argv</code> consistently when I run the app from the command line (<code>npm start</code>) or start it from VSCode.</p>