React+Express全栈应用部署Railway的问题及解决方案
React+Express全栈应用从Heroku迁移至Railway的解决方案
我正在把基于React+Express的全栈应用从Heroku迁移到Railway,核心问题是:React应用启动前需要完成依赖安装和构建,但Git通常只存储原始源码,不会包含构建产物。这类全栈项目的常见结构是根目录下存放后端代码文件,同时有一个client文件夹专门存放React前端代码。
在Heroku上,我们可以通过在项目根目录的package.json中添加特殊脚本,实现部署后自动构建前端:
"heroku-postbuild": "npm install --prefix client && npm run build --prefix client"
但Railway没有提供类似的内置后构建脚本机制,我摸索出了以下简易解决方案:
- 从
.gitignore文件中移除对build文件夹的忽略配置 - 在本地执行
npm run build命令,完成React应用的构建 - 将所有文件(包括生成的
build文件夹)添加到Git仓库并提交 - 通过Git仓库将项目部署至Railway平台
- 配置项目运行所需的环境变量
- 为应用创建公网可访问的域名
- 完成部署!
我在迁移过程中踩过不少坑,所以分享这个方案给有需要的开发者参考。
内容的提问来源于stack exchange,提问作者Zorro
相关产品推荐
相关产品推荐

