我有简单的运行react Server Side App。
回购的GitHub链接,在本地环境中,我有一个使用npm start运行的构建脚本,该脚本启动客户端和服务器的构建,然后有一个监视程序,用于监听文件的更改。这种设置在本地非常有效。
"scripts": {
"start": "npm run dev",
"dev": "npm-run-all --parallel dev:*",
"dev:server": "nodemon --watch build --exec \"node build/bundle.js\"",
"dev:build-server": "webpack --config webpack.server.js --watch",
"dev:build-client": "webpack --config webpack.client.js --watch"
},
由于某些奇怪的原因,我试图将这些更改作为产品应用程序部署到heroku,因为它永远无法工作并返回503。我尚未在package.json中的构建脚本中添加任何更改,并尝试按原样部署。
我认为它应该工作,因为构建日志主体在heroku上给出了任何错误,但是在尝试访问应用程序时显示错误,并要求我检查应用程序日志,但是我没有使用heroku cli,也没有计划使用它,并且
考虑从github自动部署。
我对脚本/还很陌生,在很大程度上尝试构建脚本以进一步了解它们。
我们如何确保这个小的React SSR git repo能够部署并且我能够访问主页。
我没有使用heroku CLI,也没有计划使用它
您应该而且我真的建议,因为这是查看构建后发生的错误的最佳方法,您的应用为何崩溃并查看完整日志。即使您可以从heroku dashbord(更多->查看日志)中查看日志,但这也只能为您提供日志的尾部。
我们如何确保这个小的React SSR git repo能够部署并且我能够访问主页。
通过使用heroku公开动态端口来确保服务器在正确的端口上侦听process.env.PORT
。
const port = process.env.PORT || 3000
app.listen(port, () => {
console.log('Listening on Port ' + port);
})
在herokuNODE_ENV
上production
,默认情况下将环境变量设置为,这意味着heroku将devDependencies
在构建后进行修剪,但是在您的情况下,您仍然需要这些依赖项才能使用webpack启动应用程序。
您可以通过两种方式解决此问题:
通过添加build
脚本来自定义构建过程:
从您的github仓库:
"start": "webpack --config webpack.client.js; webpack --config webpack.server.js; node build/bundle.js"
至
"scripts": {
"start": "node build/bundle.js",
"build": "webpack --config webpack.client.js & webpack --config webpack.server.js",
"build:start": "webpack --config webpack.client.js && webpack --config webpack.server.js && node build/bundle.js",
}
将设置NODE_ENV
为任何其他值可跳过修剪您的devDependencies
heroku config:set NODE_ENV=development //(Another reason to use the CLI)
检查此链接以获取更多详细信息
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句