gpt4 book ai didi

heroku - npm 以 NODE_ENV 作为参数运行

转载 作者:行者123 更新时间:2023-12-05 06:54:58 24 4
gpt4 key购买 nike

如何将 NODE_ENV 作为参数传递给 npm run 命令?

示例 package.json 文件:

NODE_ENV=8080

...
"script": {
"start": "http-server --port $NODE_ENV" // or something similar that
}
...

请注意,NODE_ENV 是由另一个进程设置的,npm run 只能从中读取。

我在将我的应用程序部署到 heroku 时遇到了这个问题(它们会自动设置 NODE_ENV)。我在 heroku 上找到了这个问题的另一个解决方案,但我仍然想知道是否有办法将 NODE_ENV 传递给 npm run 命令。

最佳答案

环境变量可以直接使用,就像你试过的那样:

{
"scripts": {
"start": "echo $FOO"
}
}
如果您运行此启动脚本,

yarn startnpm run start 都将回显 FOO 环境变量的值。我认为您还有另外两个问题。

首先,您尝试使用环境变量 NODE_ENV 来设置您的应用程序监听的端口。 Heroku provides this value via the PORT environment variable ,而不是 NODE_ENVNODE_ENV will contain something like production .

其次,您尝试在 package.json 中设置环境变量。 This is possible ,但它会覆盖 Heroku 设置的值。相反,请考虑在开发中使用 .env 文件。它的内容看起来像这样:

PORT=8080

您需要工具来加载此文件并填充您的环境。 dotenv 是一个流行的选择。请注意,您的 .env 文件不应该被提交,因此请考虑将其添加到您的 .gitignore 中。

还有其他方法可以在您的开发环境中设置环境变量,如果您愿意,其中任何一种都可以。

将所有这些放在一起,您的 package.json 应该包含如下内容

{
"scripts": {
"start": "http-server --port $PORT"
}
}

关于heroku - npm 以 NODE_ENV 作为参数运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65423438/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com