React 应用程序在本地运行,在 Heroku 上时崩溃错误代码 = H10

IT技术 node.js reactjs heroku
2021-04-03 04:01:04

该应用程序在 Windows 中的“npm start”之后运行良好,但是当我从 github 拉入 Heroku 时,我只是收到一个错误。

包.json:

{
  "name": "tic-tac-toe",
  "version": "0.1.0",

  "dependencies": {
    "react": "^15.5.4",
    "react-dom": "^15.5.4"
  },
  "engines": {
      "node": "6.10.3",
      "npm":"3.10.10"
  },
  "devDependencies": {
    "react-scripts": "1.0.7"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  }
}

和错误日志:

 app[web.1]: npm ERR!     npm bugs tic-tac-toe
 app[web.1]: npm ERR! Or if that isn't available, you can get their info via:
 app[web.1]: npm ERR!     npm owner ls tic-tac-toe
 app[web.1]: npm ERR! There is likely additional logging output above.
 app[web.1]: 
 app[web.1]: npm ERR! Please include the following file with any support request:
 app[web.1]: npm ERR!     /app/npm-debug.log
 heroku[web.1]: Process exited with status 1
 heroku[web.1]: State changed from starting to crashed
 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=react-tac-to.herokuapp.com request_id=c3cf2461-1989-4734-a7d5-157eb81c9643 fwd="24.29.73.46" dyno= connect= service= status=503 bytes= protocol=https
 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=react-tac-to.herokuapp.com request_id=05109629-cbb4-4927-9d13-8a3a37fedb93 fwd="24.29.73.46" dyno= connect= service= status=503 bytes= protocol=https

问题的本质让我认为这是基于配置的,而不是主要的 app.js 代码。主文件有点长,如果你想看,我会在 Github 上链接到它:https : //github.com/owenpercoco/React-Tac-Toe

5个回答

我遇到了同样的问题,但上面的解决方案对我在 Heroku 中的 React 应用程序不起作用。我已将构建包更新为 create-react-app,它对我有用。

heroku buildpacks:set mars/create-react-app

像魅力一样工作
2021-06-05 04:01:04

只是npm i serve为了安装服务,或者你可以使用纱线而不是 npm

您可以在 package.json 文件中更改您的脚本,这似乎是由 react 更新引起的。

"scripts": {
"dev": "react-scripts start",
"start": "serve -s build",
"build": "react-scripts build",
"heroku-postbuild": "npm run build"}

希望它能解决您的问题。

我面临同样的问题,它对我有用。

将“服务”添加到应用程序中。

例子: npm add serve or yarn add serve

更改 package.json 中的脚本后

"scripts": {
  "dev": "react-scripts start",
  "start": "serve -s build",
  "build": "react-scripts build",
  "heroku-postbuild": "npm run build"
}

Heroku 默认不安装 devdependencies:。https://devcenter.heroku.com/articles/nodejs-support将您的 react-scripts module设置为始终在 Heroku 上安装或关闭生产模式。

谢谢马克。可能会通过“脚本”添加您指的是package.json文件的一部分
2021-05-31 04:01:04
我有同样的问题,但我没有得到你的解决方案。你能详细说明一下吗?
2021-06-07 04:01:04
Vasu,我对一个基本上干净的 create-react-app 有同样的问题。这是我必须更改的内容:添加"heroku-postbuild": "npm run build"到我的脚本中,然后我运行“yarn add serve --save”以将“serve”命令添加到我的依赖项中,然后我将我的“开始”脚本更改为:"start": "serve -s build",根据以下 Sufyan 的回答。我希望这有帮助。
2021-06-16 04:01:04

1.)npm install serve --saveyarn install serve --save在您的终端

"scripts": {
"dev": "react-scripts start",
"start": "serve -s build",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject",
"heroku-postbuild": "npm run build"
}

2.) 在我的 package.json 文件中复制了上面的代码来代替以前的代码“脚本”

3.) git commit -am "new update"

4.) git push heroku master

  • 注意:常见问题是缺少第一步。
哇!终于解决了我的问题!唯一的问题是我不知道为什么......
2021-06-11 04:01:04
@Dardar,如果第一步是您的情况,那是因为 Heroku 要求对您的依赖项具有“服务”,那么它将能够处理该问题。
2021-06-18 04:01:04