如何在VSCode的launch.json中配置Node.js应用前置CLI启动参数
问题本质
两种传参方式的作用完全不同:
- 写在
node app前的role_id=123 secret_id=123是Shell注入的进程环境变量,Node启动后可直接通过process.env.role_id、process.env.secret_id读取 - 写在
node app后的内容是应用命令行参数,只会被解析到process.argv数组,不会自动注入环境变量,所以应用读不到对应值就会报参数缺失 - 你当前把这类键值对写在
args字段里,VSCode调试时自然会把它们拼接到命令尾部,触发报错。
配置方案
把所有需要在进程启动前传入的环境变量,从args数组移到专属的env配置字段下即可。env中配置的键值对会在Node进程启动前就注入运行环境,和你手动在命令前写变量的运行效果完全一致。
修改后的launch.json配置如下:
{ "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "DEBUG NODE APP", "program": "${workspaceFolder}/app.js", "env": { "role_id": "123", "secret_id": "123", "NODE_ENV": "test" } } ] }
小提示:如果要传
--port=3000这类标准命令行参数,再把对应内容写到args数组里即可,不要把环境变量和命令行参数混放。
内容的提问来源于stack exchange,提问作者Abhishek Sheoran
相关产品推荐
相关产品推荐

