Heroku构建失败 - 错误R10(引导超时)

时间:2017-06-22 01:37:15

标签: node.js heroku deployment

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

错误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"
  },
...

1 个答案:

答案 0 :(得分:0)

<强>解

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