Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/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
Heroku 在生成Web包后设置环境变量_Heroku_Webpack - Fatal编程技术网

Heroku 在生成Web包后设置环境变量

Heroku 在生成Web包后设置环境变量,heroku,webpack,Heroku,Webpack,我目前正在尝试在Heroku上部署我的Webpack2/React/Redux应用程序,我正在尝试本地构建,然后部署到Heroku。问题是Heroku提供的端口环境变量是在构建后设置的,因此在本地构建时process.env.PORT值是未定义的 我可以在Heroku服务器上构建,但是它非常慢,并且有60秒的启动超时 我想知道是否有一种方法可以在构建后设置环境变量?要在Heroku上构建应用程序,通常会在package.json中使用postinstall脚本(有关更多详细信息,请参阅)。或者,

我目前正在尝试在Heroku上部署我的Webpack2/React/Redux应用程序,我正在尝试本地构建,然后部署到Heroku。问题是Heroku提供的端口环境变量是在构建后设置的,因此在本地构建时process.env.PORT值是未定义的

我可以在Heroku服务器上构建,但是它非常慢,并且有60秒的启动超时


我想知道是否有一种方法可以在构建后设置环境变量?

要在Heroku上构建应用程序,通常会在package.json中使用
postinstall
脚本(有关更多详细信息,请参阅)。或者,您可以添加一个名为
heroku postbuild
的npm脚本

在这两种情况下,应该已经设置了环境变量
$PORT
,并且在构建期间没有60秒超时限制

为了确保我正确理解您的问题:在构建后不可能在运行时读取环境变量(afaik),您必须告诉Webpack不要替换
进程.env
变量。但您可以在构建期间通过定义的值设置它们(例如,通过配置)

更新:

$PORT
环境变量在执行
postinstall
/
heroku postbuild
期间未设置,因此不建议像前面提到的那样将其编译到代码中。但仍然建议您使用
postinstall
/
Heroku postbuild
脚本之一在Heroku上构建应用程序

如果要在本地运行应用程序,需要自行设置
$PORT
环境变量,如下所示:

$> PORT=8000 node app.js

要在Heroku上构建应用程序,通常需要在package.json中使用
postinstall
脚本(有关更多详细信息,请参阅)。或者,您可以添加一个名为
heroku postbuild
的npm脚本

在这两种情况下,应该已经设置了环境变量
$PORT
,并且在构建期间没有60秒超时限制

为了确保我正确理解您的问题:在构建后不可能在运行时读取环境变量(afaik),您必须告诉Webpack不要替换
进程.env
变量。但您可以在构建期间通过定义的值设置它们(例如,通过配置)

更新:

$PORT
环境变量在执行
postinstall
/
heroku postbuild
期间未设置,因此不建议像前面提到的那样将其编译到代码中。但仍然建议您使用
postinstall
/
Heroku postbuild
脚本之一在Heroku上构建应用程序

如果要在本地运行应用程序,需要自行设置
$PORT
环境变量,如下所示:

$> PORT=8000 node app.js