如何将一个vuejs项目部署到heroku
我正在这个项目在本地https://github.com/misterGF/CoPilot工作,但现在,它已经完成,我想推它到heroku。 问题是告诉heroku启动应用程序。
在heroku示例中,演示服务器在从Procfile
包含此数据的信息后运行
web: node index.js
但在我的vuejs项目中,没有index.js服务器的内容。
我只有主要的入口点是index.html
和procfile不适用于HTML。
您需要更新您的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)
不要忘记build立 。
看看这里阅读更多关于构buildconf: 定制构build过程 – Heroku
如果这是一个选项,你也可以像这样全局安装http-server:
npm install -g http-server
并更新Procfile以添加上述答案中提到的configuration。
想知道:
- npm install将同时安装“dependencies”和“devDependencies”
- npm安装 – 生产只会安装“依赖关系”
- npm install – dev只会安装“devDependencies”
您还需要定义一个小的静态服务器来为您的index.html
文件提供服务。 一个简单的示例设置将使用http-server
:
npm install -S http-server
你的Procfile
变成:
web: http-server ./ -p $PORT
使用http-server
。 但是这个软件包并没有全局安装,所以你将不得不使用它的完整path:
web: ./node_modules/http-server/bin/http-server ./ -p $PORT