【问题标题】:Heroku build fail - Error R10 (Boot timeout)Heroku 构建失败 - 错误 R10(引导超时)
【发布时间】:2017-11-25 02:28:20
【问题描述】:

我正在尝试部署一个简单的应用程序,没什么大不了的,但我不断收到此错误

错误 R10(启动超时)-> Web 进程在启动后 60 秒内未能绑定到 $PORT

即使 Heroku 在 60 秒过去之前就完成了部署。我也在我的服务器中设置了 process.env.PORT。我在 Heroku 上有一些应用程序,所以我熟悉部署。

我事先制作了服务器包文件 (src/build/bundle.js) 和客户端包文件 (src/dist/bundle.js),然后将所有内容推送到 Heroku。在 package.json 中有一个启动脚本应该只是启动服务器。

在本地一切正常。

我正在使用服务器端渲染,我在客户端分离了 bundle、vendor 和 extractt css。在服务器端,我还捆绑文件并使用 html-webpack-plugin。不知道是否有任何联系,不应该。

prodServer.js

const APP_PORT: number = conf.APP_PORT
const PORT: any = process.env.PORT || APP_PORT

const app: Express = new Express()

app.set('views', path.join(__dirname, 'views'))
app.set('view engine', 'ejs')

app.use(Express.static(path.join(__dirname, '../', 'dist'), {maxAge: '1y'}))

app.use((req: Object, res: Object, next: () => void): void => {
  res.set('Cache-Control', 'no-cache')
  return next()
})

app.get('*', (req: Object, res: Object) => {
  res.render('index', {app: req.body, webpack: req.chunk})
})

app.listen(PORT, () => {
  console.log(`
  Express server is up on port ${PORT}
  Production environment
  `)
})

package.json

{
  "name": "QR",
  "version": "1.0.0",
  "description": "Q",
  "main": "prodServer.js",
  "license": "MIT",
  "scripts": {
    "clean": "rm -rf ./src/dist && rm -rf ./src/build",
    "build-client": "cross-env NODE_ENV=production webpack -p --config webpack.config.prod.js",
    "build-server": "cross-env NODE_ENV=production webpack -p --config webpack.config.server.prod.js",
    "start": "cross-env NODE_ENV=production node ./src/build/bundle.js"
  },
...

【问题讨论】:

  • 嗨,斯科特。如何获取端口,Heroku 不通过 process.env.PORT 使用它自己的。我在生产版本中提到的唯一其他端口是 localhost:3001 用于我的 webpack 包中的 publicPath。 EDIT 实际上我什至没有在生产中使用该端口。我通过脚本标记直接在我的html中引用捆绑文件。
  • 在 PORT 上用 var 代替 const
  • 谢谢斯科特。我试过了,但仍然没有运气。仍然得到同样的错误。

标签: node.js heroku deployment


【解决方案1】:

解决方案

好的。我设法修复它。问题是 DefinePlugin。我有 process.env.NODE_ENV: production,它在我的代码中交换 process.env.PORT,所以 Heroku 无法连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-15
    • 2014-01-13
    • 2012-05-15
    • 1970-01-01
    • 2021-11-29
    • 1970-01-01
    • 2014-03-24
    • 2015-11-23
    相关资源
    最近更新 更多