【问题标题】:Can't View Express/React App in Heroku (concurrently not found)无法在 Heroku 中查看 Express/React 应用程序(当前未找到)
【发布时间】:2019-06-01 03:46:24
【问题描述】:

我在 Heroku 中查看我的 Node/Express + React 项目时遇到问题。成功将我的项目推送到 Heroku 后,当我尝试在 heroku 中查看我的应用时,我得到一个 404 错误页面。

Heroku 日志显示找不到 concurrently

我想知道是否有人可以帮助我找出原因? 一切都在本地工作。没有问题。 我一直无法找到任何解决方案。我试过这个: https://github.com/RickWong/react-isomorphic-starterkit/issues/12

我尝试在 heroku 中设置环境变量,建议如下:

heroku config:set NPM_CONFIG_PRODUCTION=false

但是,它不起作用。

我还发现了这个:

https://github.com/rickbergfalk/sqlpad/issues/359

我尝试在服务器文件夹和根目录中重新安装 concurrently 两次。但是对于每个实例,我都会收到相同的错误,告诉我找不到 concurrently

这是 Heroku 日志:

2019-01-05T04:44:42.843348+00:00 heroku[web.1]: Starting process with command `npm start`
2019-01-05T04:44:45.795355+00:00 heroku[web.1]: Process exited with status 1
2019-01-05T04:44:45.817371+00:00 heroku[web.1]: State changed from starting to crashed
2019-01-05T04:44:45.825275+00:00 heroku[web.1]: State changed from crashed to starting
2019-01-05T04:44:45.691080+00:00 app[web.1]: 
2019-01-05T04:44:45.691107+00:00 app[web.1]: > hello_fullstack@1.0.0 start /app
2019-01-05T04:44:45.691110+00:00 app[web.1]: > concurrently -- kill-others "npm run server" "npm run client"
2019-01-05T04:44:45.691112+00:00 app[web.1]: 
2019-01-05T04:44:45.699841+00:00 app[web.1]: sh: 1: concurrently: not found
2019-01-05T04:44:45.704281+00:00 app[web.1]: npm ERR! file sh
2019-01-05T04:44:45.704664+00:00 app[web.1]: npm ERR! code ELIFECYCLE
2019-01-05T04:44:45.704985+00:00 app[web.1]: npm ERR! errno ENOENT
2019-01-05T04:44:45.705300+00:00 app[web.1]: npm ERR! syscall spawn
2019-01-05T04:44:45.706913+00:00 app[web.1]: npm ERR! hello_fullstack@1.0.0 start: `concurrently -- kill-others "npm run server" "npm run client"`
2019-01-05T04:44:45.707140+00:00 app[web.1]: npm ERR! spawn ENOENT
2019-01-05T04:44:45.707475+00:00 app[web.1]: npm ERR!
2019-01-05T04:44:45.707708+00:00 app[web.1]: npm ERR! Failed at the hello_fullstack@1.0.0 start script.
2019-01-05T04:44:45.708000+00:00 app[web.1]: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
2019-01-05T04:44:45.718125+00:00 app[web.1]: 
2019-01-05T04:44:45.718481+00:00 app[web.1]: npm ERR! A complete log of this run can be found in:
2019-01-05T04:44:45.718674+00:00 app[web.1]: npm ERR!     /app/.npm/_logs/2019-01-05T04_44_45_709Z-debug.log

有什么建议吗?

(不确定这是否重要,但我的开发环境在 ubuntu 中,我在 virtualbox 中运行;主机操作系统是 Windows 8)

【问题讨论】:

  • 您是否将其列为依赖项?
  • 嗨 Li357。非常感谢您闪电般的快速响应。是的,我愿意。我在 root 的 package.json 文件中将它列为 devDependency。
  • dev(开发)依赖项不会安装在生产环境中(在这种情况下是 heroku ...)在任何情况下这都不是正确的部署方式...你所有的反应都有被“建造”并作为静态资产......
  • @SakoBu 是的,我想。在@Li357 问我这个问题后,我突然想到我同时安装在devDependencies 而不是dependencies 下。现在我觉得很傻。 devDependency 的“开发”部分严重飞过我的头。我只是同时卸载并在依赖项下重新安装它。推送到 heroku 后,我不再得到 404 页面,而是一个带有文本“无效主机标题”的空白页面。 Heroku 日志现在显示“找不到 nodemon”,这是一个新问题。我猜 heroku 现在同时看到了
  • 所以nodemon是在devDependencies还是dependencies下?

标签: node.js reactjs express heroku npm


【解决方案1】:

我找到了解决问题的方法。

在挣扎之后,我决定重新开始并构建一个示例 react/express 应用程序,看看我是否可以将它部署到 heroku。成功部署后,我比较了示例应用程序和损坏的应用程序中的代码。然后我想到问题可能出在我分配给我根文件夹的 package.json 文件中的 heroku-postbuild 脚本的命令上。

以前,我有这个垃圾:

"heroku-postbuild": "NPM_CONFIG_PRODUCTION=false npm install --prefix client && npm run build --prefix client"

我把它改成了这样:

"heroku-postbuild": "cd client && npm install && npm run build"

而且,就像魔术一样,它奏效了!我想我并没有“构建”我应该在 heroku 方面构建的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-14
    • 2022-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多