如何將vue項(xiàng)目部署至heroku上以供外網(wǎng)訪問

前言:google和百度發(fā)現(xiàn)將vue項(xiàng)目部署至heroku上的資料很少孟岛,在medium.com找到老外的兩篇相關(guān)文章黎棠,但按照他們的步驟會(huì)報(bào)錯(cuò)赊舶,后來自己結(jié)合heroku官方文檔及老外的文章介紹逐漸理清了相關(guān)思路魄宏。罕袋。。

如果vue項(xiàng)目沒有后臺(tái)的話亮蛔,我們直接使用npm run build 后在dist目錄就可以直接看到index.html痴施、css及js相關(guān)資源。如果想部署至外網(wǎng),我們可以采用github pages辣吃、coding及碼云提供的靜態(tài)服務(wù)進(jìn)行部署动遭。他們間的部署比較簡(jiǎn)單,我就不啰嗦了神得。部署前注意以下兩點(diǎn)即可:
1厘惦、部署前記得將 config/index.js文件中的assetsPublicPath: '/', 修改為assetsPublicPath: './',
2、在push代碼前記得將根目錄中的.gitignore文件中的dist一行刪除哩簿,否則git會(huì)忽略dist文件夾的宵蕉。

但是如果有后臺(tái)的話就不是之前所講的部署方法了,其部署方法就是這篇文章的主題啦-----如何將vue項(xiàng)目部署至heroku上:
本文以基于vue腳手架vue-cli的項(xiàng)目為例講述如何將其部署在heroku上以供外網(wǎng)訪問节榜。進(jìn)入下面的步驟前確保你安裝了Heroku CLI(安裝完后在Git Bash上運(yùn)行)及 注冊(cè)和登錄了heroku (heroku login

一国裳、采用Heroku CLI在本地項(xiàng)目根目錄部署的方法

1、在項(xiàng)目根目錄中的package.json文件中的 scripts 部分增加以下兩句:
"postinstall": "npm run build",
"start": "node server.js"

同時(shí)將原有的"start": "node build/dev-server.js", 一行刪除全跨。(注釋掉會(huì)報(bào)錯(cuò)!R谒臁Eㄈ簟)

2、在項(xiàng)目根目錄中創(chuàng)建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 || 5000
app.listen(port)
console.log('server started ' + port)
3挪钓、在Git Bash上運(yùn)行heroku create
image.png
4、在Git Bash上運(yùn)行heroku git:remote -a 你之前heroku create所生成的隨機(jī)名稱(或者你已在heroku網(wǎng)站上新建的項(xiàng)目名稱)

image.png

如果你之前沒有使用git耳舅,則需要運(yùn)行git init

完成后我們?cè)陧?xiàng)目根目錄中的.git/config中發(fā)現(xiàn)多出了這些

[remote "heroku"]
    url = https://git.heroku.com/fierce-headland-77916.git
    fetch = +refs/heads/*:refs/remotes/heroku/*
5碌上、在Git Bash上運(yùn)行heroku config:set NPM_CONFIG_PRODUCTION=false

NPM_CONFIG_PRODUCTION=true 的意思是默認(rèn)只安裝dependencies里的依賴不安裝devDependencies里的依賴,我們?cè)O(shè)為false就是讓它也安裝devDependencies里的依賴浦徊。當(dāng)然馏予,此時(shí)你手動(dòng)將package.json中的devDependencies里的所有依賴剪切至devDependencies里也可以到達(dá)相同效果,但不推薦啦盔性。

6霞丧、在Git Bash上運(yùn)行heroku buildpacks:set heroku/nodejs

意思是讓heroku以Node.js服務(wù)器運(yùn)行。

7冕香、部署(部署前記得已經(jīng) npm run build 了)
$ git add .
$ git commit -am "make it better"
$ git push heroku master

二蛹尝、采用連接github的方式部署

1、如果使用github的方式則需按照上面的第一方法第1步及第2步修改package.json及新增server.js后悉尾,手動(dòng)將package.json中的devDependencies里的所有選項(xiàng)(依賴)剪切至devDependencies中突那。
2、將 config/index.js文件中的assetsPublicPath: '/', 修改為assetsPublicPath: './',
3构眯、將根目錄中的.gitignore文件中的dist一行刪除愕难,否則git會(huì)忽略dist文件夾的。
4、運(yùn)行 npm run build 以生成dist
5务漩、push至github
6拄衰、然后進(jìn)行如下操作:

image.png

這里說明下,如果第二步你沒有項(xiàng)目饵骨,就在heroku上新建下翘悉。。居触。

三妖混、采用Heroku CLI在dist目錄下部署的方法

其實(shí)也是類似的;

1轮洋、首先肯定要npm run build以生成dist目錄和相應(yīng)的文件及在項(xiàng)目根目錄中.gitignore刪除dist一行制市;
2、在dist目錄下新建package.json及server.js文件

package.json

{
 "name": "blog",
 "version": "1.0.0",
 "description": "personalblog",
 "author": "Awesome Author",
 "private": true,
 "scripts": {
   "postinstall": "npm install express"
 }
}

server.js

var express = require('express');
var path = require('path');
var serveStatic = require('serve-static');
app = express();
app.use(serveStatic(__dirname));
var port = process.env.PORT || 5000;
app.listen(port);
console.log('server started '+ port);
3弊予、設(shè)置本地git倉(cāng)庫(kù)

在git bash進(jìn)行如下操作:

cd   項(xiàng)目根目錄
heroku create
heroku git:remote -a  之前heroku create所生成的隨機(jī)名稱(或者你已在heroku網(wǎng)站上新建的項(xiàng)目名稱)
4祥楣、設(shè)置運(yùn)行環(huán)境
heroku buildpacks:set heroku/nodejs
5、部署
$ git add .
$ git commit -am "make it better"
$ git subtree push --prefix dist heroku master
//這條命令的意思是只將dist push至heroku上

三汉柒、參考資料

1误褪、How to deploy a Vue.js app to Heroku
2、heroku官方文檔--git相關(guān)
3碾褂、heroku官方文檔--NodeJS相關(guān)
4兽间、Quick-n-clean way to deploy Vue + Webpack apps on Heroku

*本文版權(quán)歸本人即簡(jiǎn)書筆名:該賬戶已被查封 所有,如需轉(zhuǎn)載請(qǐng)注明出處正塌。謝謝!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末嘀略,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子乓诽,更是在濱河造成了極大的恐慌帜羊,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件问裕,死亡現(xiàn)場(chǎng)離奇詭異逮壁,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)粮宛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門窥淆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人巍杈,你說我怎么就攤上這事忧饭。” “怎么了筷畦?”我有些...
    開封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵词裤,是天一觀的道長(zhǎng)刺洒。 經(jīng)常有香客問我,道長(zhǎng)吼砂,這世上最難降的妖魔是什么逆航? 我笑而不...
    開封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮渔肩,結(jié)果婚禮上因俐,老公的妹妹穿的比我還像新娘。我一直安慰自己周偎,他們只是感情好抹剩,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蓉坎,像睡著了一般澳眷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蛉艾,一...
    開封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天钳踊,我揣著相機(jī)與錄音,去河邊找鬼勿侯。 笑死箍土,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的罐监。 我是一名探鬼主播,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼瞒爬,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼弓柱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起侧但,我...
    開封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤矢空,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后禀横,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體屁药,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年柏锄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了酿箭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡趾娃,死狀恐怖缭嫡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情抬闷,我是刑警寧澤妇蛀,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布耕突,位于F島的核電站,受9級(jí)特大地震影響评架,放射性物質(zhì)發(fā)生泄漏眷茁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一纵诞、第九天 我趴在偏房一處隱蔽的房頂上張望上祈。 院中可真熱鬧,春花似錦挣磨、人聲如沸雇逞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)塘砸。三九已至,卻和暖如春晤锥,著一層夾襖步出監(jiān)牢的瞬間掉蔬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工矾瘾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留女轿,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓壕翩,卻偏偏與公主長(zhǎng)得像蛉迹,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子放妈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 什么是 NPM npm之于Node北救,就像pip之于Python,gem之于Ruby,composer之于PHP。 ...
    ihoey閱讀 6,252評(píng)論 2 36
  • 很欣賞這么一句話“寵辱不驚芜抒,閑看庭前花開花落珍策;去留無(wú)意,漫隨天外云卷云舒”宅倒。細(xì)細(xì)想來攘宙,也是如此,漫漫人生拐迁,總有得意...
    心沁軒閱讀 705評(píng)論 5 2
  • 前段時(shí)間上架產(chǎn)品的時(shí)候蹭劈,因?yàn)槎ㄎ惶崾締栴}被拒絕了,而且集成了融云及時(shí)聊天的key线召,沒有從測(cè)試環(huán)境升級(jí)到生產(chǎn)環(huán)境链方,所...
    華楠閱讀 514評(píng)論 0 0
  • 三十一周歲了祟蚀,多么可怕的數(shù)字工窍。真想回到25歲時(shí)那如花癡夢(mèng)的時(shí)節(jié),過去了前酿,也回不去了患雏。當(dāng)下的微笑淺淺地鋪開,平和地看...
    安若惜閱讀 330評(píng)論 -1 3
  • 今天罢维,上了輛久違的公交車淹仑。 往日回家,一般一定是打車的肺孵,倒不是說手里真的有閑錢匀借,畢竟只是個(gè)沒錢美顏的窮苦學(xué)生。但現(xiàn)...
    oldpaul閱讀 1,083評(píng)論 0 0