express - Create-React-App 部署到 Heroku 失败,错误代码为 ` react-scripts: not found`

标签 express heroku create-react-app

我们正在使用 Create-React-App 开发一个 ReactJS 应用程序,该应用程序由我们的 Node/Express 服务器提供服务,该服务器也提供 API 服务。我们使用 Node/JS buildpack 将整个服务器部署到 Heroku,并尝试获取 CRA 构建步骤 npm run buildpostinstall来自节点 package.json 的脚本按照@mars in this issue建议的文件。

问题是 Heroku 部署因此错误而失败。请注意,此错误有时会在本地发生,但随后出现 npm install来自 web_app 正在解决问题,但在 Heroku 中运行时却无法解决。我有两个相关问题:

  1. 如何将同时服务 API 和 Create-React-App 应用程序的 Node/Express 应用程序部署到 Heroku?我可以提交我的构建目录,但这确实不是正确的方法。
  2. 为什么 react 脚本消失了,我必须运行多次 npm install

最佳答案

@johnnycon-

这正是问题所在,我已收到 Mars 的答复在这个github issue post :

@philjoseph, react-scripts is (by default) a devDependency for CRA apps, but Heroku Node buildpack has environment NODE_ENV=production which causes npm install to skip devDeps.

To install those devDeps too:

npm install --only=dev && npm install && npm run build

他还指出了这个优秀的存储库:https://github.com/mars/heroku-cra-node

我遵循了这个,它就像一个魅力:)

关于express - Create-React-App 部署到 Heroku 失败,错误代码为 ` react-scripts: not found`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41932041/

相关文章:

ruby-on-rails - 使用 heroku 和 sidekiq 时,我将 ENV ["WEB_CONCURRENCY"] 设置为什么

facebook - 创建 React App Service Worker nginx 无缓存配置

mysql - 使用express js、node js和Angular 6以及mysql数据库从数据库进行电子邮件验证

javascript - 从 node.js 服务器运行 Angular

ruby-on-rails - 是否可以重定向使用 HTTPS 协议(protocol)的 url? (Heroku, Rails)

reactjs - react typescript : Line 0: Parsing error: Cannot read property 'name' of undefined

reactjs - 使用 typescript 模板将 create-react-app 更新到 4.0 时出错

node.js - 标题未定义...node.js、express、jade、twitter bootstrap

javascript - 如何使用 Express.JS 接收多个请求

django - 在 Heroku 中安装 C 库