VSCode的launch.json中的args和runtimeArgs有什么区别?
runtimeArgs
中的args
和runtimeArgs
什么区别?
// 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
似乎包含args
或runtimeArgs
提供的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
实现的相关部分。