在Linux中,我们可以使用env.PORT或默认值“5000”来执行类似于cmd --port=${PORT:-5000}的操作,但这在Windows中不起作用。是否有跨平台解决方案
env.PORT
cmd --port=${PORT:-5000}
zvokhttg1#
是的,正如你所知道的,在Linux中,你可以用语法VARNAME=value定义一个变量,而在Windows中,你使用set VARNAME=value语法。实际上,有一个跨平台的解决方案可以设置CLI变量的默认值,在您的情况下,您可以这样写:
VARNAME=value
set VARNAME=value
cmd --port=${PORT:=5000}
命令cmd --port=${PORT:=5000}将'port'变量的值设置为'PORT'环境变量的值,幸运的是,这种语法在Linux和Windows中都可以工作。更新看看这个
const { exec } = require('child_process'); const port = process.env.PORT || '5000'; const cmd = `your-command-here --port=${port}`; exec(cmd, (err, stdout, stderr) => { if (err) { console.error(err); return; } console.log(stdout); });
如您所见,我的代码使用process.env.PORT来获取PORT环境变量的值,它使用适当的端口构造命令并使用child_process.exec()运行它,我的代码将在Linux和Windows上工作!
process.env.PORT
PORT
child_process.exec()
1条答案
按热度按时间zvokhttg1#
是的,正如你所知道的,在Linux中,你可以用语法
VARNAME=value
定义一个变量,而在Windows中,你使用set VARNAME=value
语法。实际上,有一个跨平台的解决方案可以设置CLI变量的默认值,在您的情况下,您可以这样写:命令
cmd --port=${PORT:=5000}
将'port'变量的值设置为'PORT'环境变量的值,幸运的是,这种语法在Linux和Windows中都可以工作。更新
看看这个
如您所见,我的代码使用
process.env.PORT
来获取PORT
环境变量的值,它使用适当的端口构造命令并使用child_process.exec()
运行它,我的代码将在Linux和Windows上工作!