我正在本地https://github.com/misterGF/CoPilot处理这个项目,但现在它已经完成了,我想将它推送到heroku。问题是告诉heroku启动应用程序。
在heroku示例中,演示服务器在从Procfile
获取包含此数据的信息后运行
web: node index.js
但在我的vuejs项目中,没有为服务内容的index.js。
我只有index.html
的主入口点,并且procfile不能与HTML一起使用。
答案 0 :(得分:8)
您还需要定义一个小型静态服务器来为index.html
文件提供服务。
一个简单的示例设置是http-server
:
npm install -S http-server
您的Procfile
变为:
web: http-server ./ -p $PORT
答案 1 :(得分:2)
使用http-server
。但是包不是全局安装的,所以你必须使用它的完整路径,如下所示:
web: ./node_modules/http-server/bin/http-server ./ -p $PORT
答案 2 :(得分:2)
您需要更新package.json文件,让heroku了解这些软件包,例如,如果您使用 express 来提供文件:
"scripts": {
"postinstall": "npm install express"
}
// "start": "node server.js" (executing server.js) during start
<强> server.js 强>
var express = require('express')
var path = require('path')
var serveStatic = require('serve-static')
var app = express()
app.use(serveStatic(path.join(__dirname, 'dist')))
var port = process.env.PORT || 8000
app.listen(port)
console.log('server started ' + port)
不要忘记构建。
点击此处阅读有关构建配置的更多信息:Customizing build process - Heroku
如果这是一个选项,您也可以像这样全局安装http-server:
npm install -g http-server
并更新Procfile以添加上述答案中提到的配置。
要知道: