VSCode的launch.json中的args和runtimeArgs有什么区别?

runtimeArgs中的argsruntimeArgs什么区别?

 // Optional arguments passed to the runtime executable "runtimeArgs": [] // Command line arguments passed to the program "args": [] 

程序与运行时可执行文件不一样吗?

问题背后的额外信息和动机:

我正在开发一个nodejs应用程序。 在我的package.json ,我有一个start脚本:

"start": "electron ./src/Main/main.js arg2" ,并在我的应用程序代码,我访问process.argv[2]这让我arg2 ,所以当我运行npm start ,我的应用程序按预期工作。

当我从VSCode运行应用程序,但是它没有,原因是我没有提供launch.json任何额外的参数。 我应该把这些论点放在哪里? process.argv似乎包含argsruntimeArgs提供的args ,虽然它也粘在一些--debug-brk参数中,我不想要。

我希望能够从命令行( npm start )运行应用程序或从VSCode npm start应用程序时始终如一地使用process.argv

我认为这大部分是在Nodedebugging文档中解释的:

直接使用节点启动Node.js程序,您可以直接从启动configuration中使用“npm”脚本或其他任务运行器工具:

  • 在PATH中可用的任何程序(例如“npm”,“mocha”,“gulp”等)都可以用于runtimeExecutable属性[…]

runtimeExecutable不是您要debugging的程序,而是用于运行它的可执行文件。 所以看起来, runtimeArgs是运行时runtimeExecutable因为args是要program

如果你对它是如何工作的细节感兴趣,下面是debugAdapter.ts实现的相关部分。