因此,我正在尝试制作我的第一个React应用。我在本地工作得很好。问题是我无法将项目上传到Heroku。
这是我的应用设置: my file arrangement。我从create-react-app开始构建了该应用程序,将整个内容包装在一个“ client”文件夹中,并创建了一个普通的节点服务器布置outside。除了添加socketio依赖项外,我没有碰过我的react app的package.json”,只是create-react-app就是这样。
尝试上传时,我在控制台上收到此错误: "sh: 1: react-scripts: Permission denied"
我经历了https://devcenter.heroku.com/articles/nodejs-support,但无济于事。
这是我的“外部” package.json脚本和依赖项
"scripts": {
"client": "npm start --prefix client",
"server": "node server.js",
"start": "concurrently \"npm run server\" \"npm run client\"",
"heroku-postbuild": "cd client && npm run build"
},
"dependencies": {
"concurrently": "^4.0.1",
"express": "^4.16.4"
"socket.io": "^2.1.1"
}
更新:
我还没有使我的应用程序正常工作,但是我终于找到了一些有趣的东西。
此:https://github.com/mars/heroku-cra-node
看起来像一个准系统应用程序,基本上可以将我的东西放到它上,并使其在Heroku上运行。我还没有添加代码,我会报告。
更新:
是的,似乎已经超出了此许可BS。现在我只需要处理使socket.io客户端连接... -_-
答案 0 :(得分:0)
将脚本更改为此:
"scripts": {
"start": "node index.js",
"server": "nodemon index.js",
"client": "npm run start --prefix client",
"dev": "concurrently \"npm run server\" \"npm run client\"",
"heroku-postbuild": "NPM_PRODUCTION=false npm install --prefix client && npm run build --prefix client",
},
npm run dev
将以开发模式启动服务器和客户端...
您还可以安装nodemon来简化生活...