Node.js Heroku部署失败,错误为';错误代码=H10';:Vue.js+;NodeJS应用程序
我试图从同一个存储库将Vue.js+NodeJS应用程序部署到Heroku,但每次都会收到“错误代码=H10” 经过几天的研究,我在这里分享了我修改过的所有相关信息,以尝试修复此错误: 1。存储库的结构:Node.js Heroku部署失败,错误为';错误代码=H10';:Vue.js+;NodeJS应用程序,node.js,vue.js,heroku,deployment,Node.js,Vue.js,Heroku,Deployment,我试图从同一个存储库将Vue.js+NodeJS应用程序部署到Heroku,但每次都会收到“错误代码=H10” 经过几天的研究,我在这里分享了我修改过的所有相关信息,以尝试修复此错误: 1。存储库的结构: client ↳ package.json ↳ dist server ↳ bin ↳ www ↳ app.js ↳ package.json Procfile package.json 2。Root package.json { "scripts"
client
↳ package.json
↳ dist
server
↳ bin
↳ www
↳ app.js
↳ package.json
Procfile
package.json
2。Root package.json
{
"scripts": {
"start": "cd server node ./bin/www && npm install",
"heroku-postbuild": "cd client && npm install && npm run build"
},
"engines": {
"node": "15.x",
"npm": "6.x"
}
}
"scripts": {
"dev": "./node_modules/.bin/vue-cli-service start",
"start": "serve -s build",
"serve": "./node_modules/.bin/vue-cli-service serve",
"build": "./node_modules/.bin/vue-cli-service build",
"lint": "./node_modules/.bin/vue-cli-service lint"
}
"scripts": {
"start": "node ./bin/www",
"dev": "nodemon ./bin/www"
}
3。Procfile
web: npm start
const port = process.env.PORT || 5000;
app.set('port', port);
4。Server package.json
{
"scripts": {
"start": "cd server node ./bin/www && npm install",
"heroku-postbuild": "cd client && npm install && npm run build"
},
"engines": {
"node": "15.x",
"npm": "6.x"
}
}
"scripts": {
"dev": "./node_modules/.bin/vue-cli-service start",
"start": "serve -s build",
"serve": "./node_modules/.bin/vue-cli-service serve",
"build": "./node_modules/.bin/vue-cli-service build",
"lint": "./node_modules/.bin/vue-cli-service lint"
}
"scripts": {
"start": "node ./bin/www",
"dev": "nodemon ./bin/www"
}
5。客户端包.json
{
"scripts": {
"start": "cd server node ./bin/www && npm install",
"heroku-postbuild": "cd client && npm install && npm run build"
},
"engines": {
"node": "15.x",
"npm": "6.x"
}
}
"scripts": {
"dev": "./node_modules/.bin/vue-cli-service start",
"start": "serve -s build",
"serve": "./node_modules/.bin/vue-cli-service serve",
"build": "./node_modules/.bin/vue-cli-service build",
"lint": "./node_modules/.bin/vue-cli-service lint"
}
"scripts": {
"start": "node ./bin/www",
"dev": "nodemon ./bin/www"
}
6。process.env.PORT(在www文件中)
7。app.js
const express = require('express');
const path = require('path');
const serveStatic = require('serve-static');
// OPTION 1:
app.use(express.static(path.join(__dirname, 'public')));
// OPTION 2:
var distDir = __dirname + "/dist/";
app.use(express.static(distDir));
// OPTION 3:
app.use('/', serveStatic(path.join(__dirname, '/dist')))
app.get(/.*/, function (req, res) {
res.sendFile(path.join(__dirname, '/dist/index.html'))
})
8。Heroku相关配置
heroku config:set USE_NPM_INSTALL=true
heroku config:set NPM_CONFIG_PRODUCTION=false YARN_PRODUCTION=false
我还手动将.env文件中存储的所有变量添加到Heroku中的配置变量中
请注意,“dist”文件夹是在从客户端文件夹运行“npm run build”后生成的,但我不确定这是否必要或足以准备部署
欢迎任何意见。谢谢