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