NodeJS 具有默认值的跨平台cli变量

gj3fmq9x  于 2023-06-29  发布在  Node.js
关注(0)|答案(1)|浏览(83)

在Linux中,我们可以使用env.PORT或默认值“5000”来执行类似于cmd --port=${PORT:-5000}的操作,但这在Windows中不起作用。
是否有跨平台解决方案

zvokhttg

zvokhttg1#

是的,正如你所知道的,在Linux中,你可以用语法VARNAME=value定义一个变量,而在Windows中,你使用set VARNAME=value语法。实际上,有一个跨平台的解决方案可以设置CLI变量的默认值,在您的情况下,您可以这样写:

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上工作!

相关问题