我得到这个
在sequelize-demo@1.0.0启动脚本处失败。
在部署Express + React应用程序时。我认为heroku遇到concurrently
问题。
我做错了什么?我引用了this,但是解决方案与该应用程序无关
也参考这个
根文件夹package.json
{
"name": "sequelize-demo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"client-install": "npm install --prefix client",
"build": "concurrently \"cd client && npm run build\" \"npm build \"",
"test": "echo \"Error: no test specified\" && exit 1",
"client": "cd ./client && npm start ",
"server-prod": "node app.js",
"server": "nodemon app.js",
"start": "concurrently --kill-others \"npm run client\" \"npm run server\" ",
"heroku-postbuild": "NPM_CONFIG_PRODUCTION=false npm install --prefix client && npm run build --prefix client"
},
"author": "",
"license": "ISC",
"dependencies": {
"async": "^2.6.1",
"bcrypt": "^3.0.2",
"body-parser": "^1.18.3",
"concurrently": "^4.1.0",
"cookie-parser": "^1.4.3",
"cookie-session": "^2.0.0-beta.3",
"cors": "^2.8.5",
"crypto": "^1.0.1",
"dotenv": "^7.0.0",
"express": "^4.16.4",
"express-flash": "0.0.2",
"express-session": "^1.15.6",
"foreman": "^3.0.1",
"jsonwebtoken": "^8.4.0",
"morgan": "^1.9.1",
"nodemailer": "^5.1.1",
"nodemon": "^1.18.9",
"passport": "^0.4.0",
"passport-github": "^1.1.0",
"passport-github2": "^0.1.11",
"passport-jwt": "^4.0.0",
"passport-local": "^1.0.0",
"pg": "7.9.0",
"pg-hstore": "^2.3.2",
"sequelize": "^4.42.0",
"sequelize-cli": "^5.4.0"
},
"devDependencies": {
"chai": "^4.2.0",
"mocha": "^6.1.2"
}
}
client / package.json
{
"name": "client",
"version": "0.1.0",
"private": true,
"proxy": "http://localhost:8000",
"dependencies": {
"@material-ui/core": "^3.9.1",
"@material-ui/icons": "^3.0.2",
"axios": "^0.18.0",
"history": "^4.7.2",
"http-proxy-middleware": "^0.19.1",
"jsonwebtoken": "^8.4.0",
"jwt-decode": "^2.2.0",
"material-ui-icons": "^1.0.0-beta.36",
"moment": "^2.24.0",
"react": "^16.7.0",
"react-dom": "^16.7.0",
"react-redux": "^6.0.0",
"react-router-dom": "^4.3.1",
"react-scripts": "2.1.3",
"redux": "^4.0.1",
"redux-thunk": "^2.3.0",
"superagent": "^4.1.0"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"heroku-postbuild": "npm run build"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": [
">0.2%",
"not dead",
"not ie <= 11",
"not op_mini all"
],
"devDependencies": {
"dotenv": "^6.2.0"
}
}
个人资料
web: npm run start
登录
用户数据库和用户表已创建
状态从启动更改为启动
端口32000上已在运行某些东西。
npm运行客户端退出,代码为0
将SIGTERM发送到其他进程。
npm运行服务器退出,代码为SIGTERM`
npm错误! sequelize-demo@1.0.0开始:
concurrently --kill-others "npm run client" "npm run server"
npm错误!退出状态1 2019-04-11T07:26:41.326088 + 00:00 app [web.1]:
npm错误! 2019-04-11T07:26:41.326282 + 00:00 app [web.1]:
npm错误! sequelize-demo@1.0.0启动脚本失败。
答案 0 :(得分:0)
修复它,我没有任何反应。
我从中学到了什么
现在,在将项目推送到Heroku存储库之前,我们需要确保在项目中具有 build文件夹。将以下脚本添加到您的package.json文件中-博客的作者
所以我在客户端目录上运行了npm运行。
然后将我的 package.json 更改为
{
"name": "sequelize-demo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"client-install": "npm install --prefix client",
"build": "concurrently \"cd client && npm run build\" \"npm build \"",
"test": "echo \"Error: no test specified\" && exit 1",
"client": "cd ./client && npm start ",
"server-prod": "node app.js",
"server": "nodemon app.js",
"start": "node app.js",
"start:dev": "concurrently --kill-others \"npm run client\" \"npm run server\" ",
"heroku-postbuild":"NPM_CONFIG_PRODUCTION=false npm install --prefix client && npm run build --prefix client"
},
"author": "",
"license": "ISC",
"dependencies": {
"async": "^2.6.1",
"bcrypt": "^3.0.2",
"body-parser": "^1.18.3",
"concurrently": "^4.1.0",
"cookie-parser": "^1.4.3",
"cookie-session": "^2.0.0-beta.3",
"cors": "^2.8.5",
"crypto": "^1.0.1",
"dotenv": "^7.0.0",
"express": "^4.16.4",
"express-flash": "0.0.2",
"express-session": "^1.15.6",
"foreman": "^3.0.1",
"jsonwebtoken": "^8.4.0",
"morgan": "^1.9.1",
"nodemailer": "^5.1.1",
"nodemon": "^1.18.9",
"passport": "^0.4.0",
"passport-github": "^1.1.0",
"passport-github2": "^0.1.11",
"passport-jwt": "^4.0.0",
"passport-local": "^1.0.0",
"pg": "7.9.0",
"pg-hstore": "^2.3.2",
"sequelize": "^4.42.0",
"sequelize-cli": "^5.4.0"
},
"devDependencies": {
"chai": "^4.2.0",
"mocha": "^6.1.2"
}
}
将此添加到 app.js
app.use(express.static(path.join(__dirname, 'client/build')));
if(process.env.NODE_ENV === 'production') {
app.use(express.static(path.join(__dirname, 'client/build')));
//
app.get('*', (req, res) => {
res.sendfile(path.join(__dirname = 'client/build/index.html'));
})
}
//build mode
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname+'/client/public/index.html'));
})
个人资料
web: npm start