【发布时间】:2018-07-21 11:21:12
【问题描述】:
我正在尝试部署我正在处理的 React on Node 项目,但遇到了一些问题,我不确定为什么。以下是从日志中提取的一些信息:
2018-02-11T00:12:22.875338+00:00 app[web.1]: > dmdb@1.0.0 start /app
2018-02-11T00:12:22.875340+00:00 app[web.1]: > node server.js
2018-02-11T00:12:22.875341+00:00 app[web.1]:
2018-02-11T00:12:23.315310+00:00 heroku[web.1]: State changed from starting to crashed
2018-02-11T00:12:23.299113+00:00 heroku[web.1]: Process exited with status 1
2018-02-11T00:13:23.976931+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=dmdb1.herokuapp.com request_id=8d37e10b-6999-4a2f-82bb-f3e724bf1c4e fwd="108.14.98.161" dyno= connect= service= status=503 bytes= protocol=https
根据日志显示的内容,我的 package.json 文件中的启动脚本似乎存在问题,但我不知道为什么,因为我已经成功部署了另一个项目.我对此进行了一些研究,我相信我的 Server.js 文件已配置并且端口设置正确,我删除了 devdependencies 并确认它在本地工作但未部署,并且我已经在 vars 中设置了我的 SECRET_KEY 自从这个已设置身份验证。下面是我设置端口的方式,以及我的 package.json 文件在后端的样子。如果有人可以提供一些见解,我将不胜感激。如果我可以提供任何其他信息,请告诉我,我会尽快提供。
来自 Server.js 的端口:
//app listening on port 1337
const PORT = process.env.PORT || 1337;
app.listen(PORT, () => {
console.log(`LISTENING ON PORT ${PORT}`)
})
从后端更新了 Package.json:
{
"name": "dmdb",
"version": "1.0.0",
"description": "",
"main": "server.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node server.js",
"dev": "nodemon server.js",
"debugger": "DEBUG=*:* nodemon server.js",
"prod": "NODE_ENV=production node server.js",
"deploy": "cd client && yarn build && cp -a ./build/ ../public/",
"heroku-postbuid" : "cross-env NODE_ENV=production WEBPACK_CONFIG=browser_prod,server_prod webpack --colors",
},
"engines": {
"node": "8.5.0",
"yarn": "1.3.2"
},
"author": "Dan Levenson",
"license": "MIT",
"dependencies": {
"bcryptjs": "^2.4.3",
"body-parser": "^1.18.2",
"cookie-parser": "^1.4.3",
"cors": "^2.8.4",
"dotenv": "^4.0.0",
"ejs": "^2.5.7",
"ejs-lint": "^0.3.0",
"express": "^4.16.2",
"express-session": "^1.15.6",
"isomorphic-fetch": "^2.2.1",
"method-override": "^2.3.10",
"morgan": "^1.9.0",
"passport": "^0.4.0",
"passport-local": "^1.0.0",
"path": "^0.12.7",
"pg-promise": "^7.0.3"
}
}
提前致谢!
编辑帖子以包含来自客户端的 Package.JSON:
{
"name": "client",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^16.2.0",
"react-dom": "^16.2.0",
"react-router-dom": "^4.2.2",
"react-scripts": "1.1.0",
"reactstrap": "^5.0.0-beta"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
},
"proxy": "http://localhost:3001"
}
添加构建日志:
-----> Node.js app detected
-----> Creating runtime environment
NPM_CONFIG_LOGLEVEL=error
NPM_CONFIG_PRODUCTION=true
NODE_VERBOSE=false
NODE_ENV=production
NODE_MODULES_CACHE=true
-----> Installing binaries
engines.node (package.json): 8.5.0
engines.npm (package.json): unspecified (use default)
engines.yarn (package.json): 1.3.2
Resolving node version 8.5.0...
Downloading and installing node 8.5.0...
Using default npm version: 5.3.0
Resolving yarn version 1.3.2...
Downloading and installing yarn (1.3.2)...
Installed yarn 1.3.2
-----> Restoring cache
Loading 2 from cacheDirectories (default):
- node_modules
- bower_components (not cached - skipping)
-----> Building dependencies
Installing node modules (yarn.lock)
yarn install v1.3.2
[1/4] Resolving packages...
success Already up-to-date.
Done in 0.30s.
-----> Caching build
Clearing previous node cache
Saving 2 cacheDirectories (default):
- node_modules
- bower_components (nothing to cache)
-----> Build succeeded!
-----> Discovering process types
Procfile declares types -> web
-----> Compressing...
Done: 20.7M
-----> Launching...
Released v12
https://dmdb-1.herokuapp.com/ deployed to Heroku
【问题讨论】:
-
您如何在 Heroku 上构建您的客户端?根据您发布的内容,Heroku 只会运行您的 npm start 脚本。因此,也许您需要添加一个 heroku-postbuild 脚本来运行您当前在“部署”中拥有的内容?见stackoverflow.com/questions/48531545/…。
-
感谢您的提示,我已尝试添加与您链接的帖子类似的后期构建脚本,但仍然遇到相同的错误。我再次查看了日志,似乎我的某些模型可能无法正确检测到:错误:找不到模块'../../models/user.js' 你认为这可能有某种关联吗?跨度>
-
请为服务器和客户端目录发布您更新的 package.jsons。
-
抱歉耽搁了,刚刚发布了更新。
-
您的 package.json 脚本中有错字:“heroku-postbuid”应该是“heroku-postbuild”。修复该问题后,如果仍有问题,请发布构建日志。
标签: json node.js reactjs heroku