首页 > 解决方案 > package.json 脚本在 heroku 上失败

问题描述

所以我有一系列脚本设置为 React/Node Express 应用程序的开发服务器或 heroku 上的生产服务器。该应用程序的结构如下:

client/package.json //pckg for react app package.json //pckg for node server

这些是客户端包中的脚本:

  "scripts": {
"start": "if-env NODE_ENV=production && npm run start:prod || npm run start:dev",
"start:prod": "node server.js",
"start:dev": "set NODE_ENV=development&& concurrently \"nodemon --ignore 'client/*'\" \"npm run client\"",
"client": "cd client && npm run start",
"seed": "node scripts/seedDB.js",
"install": "cd client && npm install",
"build": "cd client && npm run build",
"heroku-postbuild": "npm run build"

}

react 应用程序 package.json 与使用 create-react-app 自动生成的应用程序之间的唯一区别如下:

"proxy": "http://localhost:3001/",

它应该运行的方式是,在根文件夹中安装脚本,运行安装脚本到 cd 到客户端并安装 react 应用程序依赖项,然后 heroku 的构建后脚本应该启动运行构建脚本,该脚本 cds 到客户端并构建生产就绪反应应用。最后,启动脚本应该看到生产的 NODE_ENV 并运行 start:prod。

我的问题是,由于某种原因,当我推送到 heroku 时,它似乎卡在了安装脚本的无限循环中。我不知道为什么,因为完全相同的脚本可以完美地用于其他项目。

https://github.com/LordKriegan/reactdbdemo https://github.com/LordKriegan/reactdbdemo2/如果有人想看的话。(为我的学生做一个完整的堆栈演示:/如果我无法部署它,那就没有太多的演示)

标签: node.jsreactjsherokuscripting

解决方案


我让它工作了。忘记了 create-react-app 也初始化了一个 git repo ......?无论是那个还是在路上的某个地方,我都做了一个额外的 git init。无论如何,我的客户端文件夹中有一个 .git 文件夹,这阻止了我的客户端文件夹被向上推。我最终创建了一个新的存储库并将所有内容推送到该存储库,现在它可以工作了。所以万一有人来这里遇到类似的问题……确保你没有陷入某种 gitception 陷阱。:/


推荐阅读