Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Heroku 以节点_ENV作为参数运行npm_Heroku_Npm - Fatal编程技术网

Heroku 以节点_ENV作为参数运行npm

Heroku 以节点_ENV作为参数运行npm,heroku,npm,Heroku,Npm,如何将NODE\u ENV传递到npm run命令作为参数 示例package.json文件: NODE_ENV=8080 ... "script": { "start": "http-server --port $NODE_ENV" // or something similar that } ... 请注意,NODE\u ENV由另一个进程设置,只能从中读取npm运行 我在将我的应用程序部署到he

如何将
NODE\u ENV
传递到
npm run
命令作为参数

示例
package.json
文件:

NODE_ENV=8080

...
    "script": {
        "start": "http-server --port $NODE_ENV" // or something similar that
    }
...
请注意,
NODE\u ENV
由另一个进程设置,只能从中读取
npm运行


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

您试图接受双引号中字符串中的值,这是错误的。您可以通过以下方式访问:

备选案文1: 你需要连接两个字符串

NODE_ENV=8080

"script": {
    "start": "http-server --port "+NODE_ENV
}
备选案文2: 你可以用


在选项2中,NODE_ENV将替换为变量的实际值

您试图接受双引号中字符串内的值,这是错误的。您可以通过以下方式访问:

备选案文1: 你需要连接两个字符串

NODE_ENV=8080

"script": {
    "start": "http-server --port "+NODE_ENV
}
备选案文2: 你可以用


在选项2中,节点_ENV将替换为变量的实际值

环境变量可以直接使用,正如您尝试的那样:

{
“脚本”:{
“开始”:“echo$FOO”
}
}
如果运行此启动脚本,
warn start
npm run start
都将回显
FOO
环境变量的值。我想你还有两个问题

首先,您试图使用环境变量
NODE_ENV
设置应用程序侦听的端口,不
NODE\u ENV

其次,您试图在
包.json
中设置一个环境变量,但它将覆盖Heroku设置的值。相反,请考虑在开发中使用<代码> .ev文件。其内容可以如下所示:

PORT=8080
您将需要工具来加载此文件并填充您的环境。这是一个流行的选择。注意,您的<代码> .Env文件不应提交,因此也考虑将其添加到<代码> > GiTigGORE ./P> 在您的开发环境中还有其他方法来设置环境变量,如果您愿意,其中任何一种都可以使用

综上所述,您的
包.json
应该包含如下内容

{
“脚本”:{
“开始”:“http服务器--端口$port”
}
}

可以直接使用环境变量,正如您尝试的那样:

{
“脚本”:{
“开始”:“echo$FOO”
}
}
如果运行此启动脚本,
warn start
npm run start
都将回显
FOO
环境变量的值。我想你还有两个问题

首先,您试图使用环境变量
NODE_ENV
设置应用程序侦听的端口,不
NODE\u ENV

其次,您试图在
包.json
中设置一个环境变量,但它将覆盖Heroku设置的值。相反,请考虑在开发中使用<代码> .ev文件。其内容可以如下所示:

PORT=8080
您将需要工具来加载此文件并填充您的环境。这是一个流行的选择。注意,您的<代码> .Env文件不应提交,因此也考虑将其添加到<代码> > GiTigGORE ./P> 在您的开发环境中还有其他方法来设置环境变量,如果您愿意,其中任何一种都可以使用

综上所述,您的
包.json
应该包含如下内容

{
“脚本”:{
“开始”:“http服务器--端口$port”
}
}

请注意,这是
package.json
文件,不是javascript文件,因此您不能在此处编写javascript代码。因此,concat字符串或模板文本无效。您是否已将NODE_ENV添加到环境变量中?由于结构相同,我尝试使用不同的变量请注意,这是
package.json
文件,而不是javascript文件,因此不能在此处编写javascript代码。因此,concat字符串或模板文本无效。您是否已将NODE_ENV添加到环境变量中?因为结构是相同的,我尝试了不同的变量。是否接受任何工具?使用第三方工具是否有问题?是否接受任何工具?使用第三方工具有问题吗?我的错误是认为端口值是由
$NODE\u ENV
而不是
$port
设置的。因此,使用
“http服务器--port$port”
而不是
“http服务器--port$NODE_ENV”
可以解决我的问题。谢谢。我的错误是认为端口值是由
$NODE\u ENV
而不是
$port
设置的。因此,使用
“http服务器--port$port”
而不是
“http服务器--port$NODE_ENV”
可以解决我的问题。非常感谢。