如何将多个args传递给npm start

时间:2018-01-30 17:53:47

标签: node.js npm

我正在学习节点js,并且已经编写了一些基本代码来开始尝试。

如果我想将任何参数传递给我的应用程序,我使用以下命令:

PORT=300 npm start

并使用以下代码在代码中访问它:

process.env.PORT

但我想现在传递多个参数,例如

PORT=3000 user=dev npm start

当我传入多个参数时,启动失败。

然后我尝试了&&&'在参数之间它不再失败,但只有最后一个参数成功传递给脚本,例如如果我使用以下命令启动脚本:

PORT=3000 && user=dev npm start

我可以通过process.env.user访问用户参数,但PORT未定义

OR

如果我通过以下方式启动应用程序:

user=dev && PORT=3000 npm start

我现在可以访问PORT参数,但现在process.env.user未定义。

P.S。我在Windows环境中运行它。

3 个答案:

答案 0 :(得分:1)

尝试升级您的npm版本和" PORT = 3000 user = dev npm start"应该工作正常。

答案 1 :(得分:0)

在我的api代码库中,我使用了以下命令,

PORT=5555 pm2 start app.js --name API --env production -f

但是,每次都很难记住长参数列表。我建议使用单个pm2配置文件,而不是手动运行每个应用程序。它可以使用env参数分隔开发,登台和生产环境。这是正确的指南,http://pm2.keymetrics.io/docs/usage/application-declaration/我使用的json格式已经使用了很长时间,现在很容易处理在pm2上运行的应用程序。

希望这有帮助。

答案 2 :(得分:-2)

您可以将这些值作为命令行参数传递,您可以在脚本/代码中按顺序访问这些值。 喜欢 -

npm start 3000 dev

您可以通过 -

访问它们
process.argv[i]

所以在i = 2时,你将获得3000而在i = 3时,你将获得字符串形式的开发。