如何将vuejs项目部署到heroku

时间:2017-09-08 14:57:52

标签: node.js heroku vue.js vuejs2

我正在本地https://github.com/misterGF/CoPilot处理这个项目,但现在它已经完成了,我想将它推送到heroku。问题是告诉heroku启动应用程序。

在heroku示例中,演示服务器在从Procfile获取包含此数据的信息后运行

web: node index.js

但在我的vuejs项目中,没有为服务内容的index.js。

我只有index.html的主入口点,并且procfile不能与HTML一起使用。

3 个答案:

答案 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以添加上述答案中提到的配置。

  

要知道:

  • npm install 将同时安装“依赖项”和“devDependencies”
  • npm install - production 只会安装“依赖项”
  • npm install - dev 只会安装“devDependencies”