如何使用heroku-22部署reactapp ?



我在部署到heroku时收到了这个消息:

remote: =====! create-react-app-buildpack has reached end-of-life 🌅
remote:        This build may succeed, but the buildpack is no longer maintained.
remote:        On the Heroku-22 stack and beyond, this may fail to build at all.
remote:
remote:        Please consider migrating to https://nextjs.org or https://remix.run to develop React apps which are deployable using Heroku's Node.js buildpack https://github.com/heroku/heroku-buildpack-nodejs, or you may develop your own create-react-app deployment with Node.js and Nginx buildpacks.  

我正在使用这个buildpack:

https://github.com/mars/create-react-app-buildpack

但是heroku将不再支持它。我不知道如何将我的reactapp迁移到nextjs或remix,有人知道支持新版本heroku的替代构建包吗?

旧答案

您正在使用的构建包已弃用,并且不能在Heroku-22上工作。简单的解决方案,也是我所做的,就是推迟升级Heroku堆栈,直到为Create-React-App发布新的构建包。Heroku-18已经被弃用了,所以你应该升级到Heroku-20。

heroku stack:set heroku-20

更新答案(截至2023-01-05)

如果你有一个没有环境变量的静态网站,你可以使用一个快速服务器来运行静态预构建资产。基于本文的说明。

  1. 通过Heroku中应用程序的设置选项卡从Heroku中删除当前构建包。
  2. Install express withnpm install express(oryarn add express)
  3. 新建文件scripts/heroku-start.js,内容如下:
const express = require('express');
const path = require('path');
const app = express();
const port = process.env.PORT || 3000;
app.use(express.json());
// Your static pre-build assets folder
app.use(express.static(path.join(__dirname, '..', 'build')));
// Root Redirects to the pre-build assets
app.get('/', function(req,res){
res.sendFile(path.join(__dirname, '..', 'build'));
});
// Any Page Redirects to the pre-build assets folder index.html that // will load the react app
app.get('*', function(req,res){
res.sendFile(path.join(__dirname, '..', 'build/index.html'));
});
app.listen(port, ()=>{
console.log("Server is running on port: ", port)
})
  1. 创建Procfile文件,内容如下:
web: node scripts/heroku-start.js
  1. 设置Heroku stack为Heroku-22并部署

我似乎找到了一个简单的工作,目前正在我的网站上工作。我得到同样的错误:

远程:= = = = =比;检测框架:静态HTML不支持Stack heroku-22 !远程:!Push被拒绝,编译React.js (create-react-app) multiapp失败

虽然我已经在Heroku上运行了相同的页面,但有不同的文本/图像(这在某种程度上运行了我的react页面,目前没有任何buildpack)

为了解决这个问题,这就是我所尝试的,它允许我git推送我的应用程序。

当你从npm推送你的react应用时,确保从该应用的Heroku设置页面中删除react构建包,通过npm重新推送,它应该加载没有任何问题,你的应用现在上传到Heroku。现在,如果你去重新应用你的构建包(https://buildpack-registry.s3.amazonaws.com/buildpacks/mars/create-react-app.tgz)并刷新你的页面,它应该工作得很好。

仅供参考,同一提交者的新构建包现在正在更新并工作。

https://github.com/heroku/heroku-buildpack-nodejs -请检查并将其插入heroku:0

谢谢你的互联网书呆子-爱你们所有人

0

相关内容

  • 没有找到相关文章

最新更新