最近被vue+koa項目搞瘋了,好多坑!!!先將部署的步驟詳細介紹一下吧,以後再總結一篇閉坑指南~忙完這段時間會將項目作成視頻課程。css
本項目是vue+koa先後端分離開發的手機商城項目,先貼一下項目的目錄,咱們主要就是要部署dist和server這兩個文件夾
html
將build裏面的assetsPublicPath路徑改爲./
,否則生成的dist文件加載不到js、css、img等靜態文件vue
build: { //須要修改的地方 assetsPublicPath: './',
在本地進行項目開發,後端的url通常都用http://localhost:3000。部署上線後就須要將這個url換成真正的域名了,我是統必定義在src/config.js文件裏面
後面跟的端口要跟後端server/app.js裏面的監聽端口app.listen(3000)
一致node
//須要修改的部分 const host = 'http://yourdomain.com:3000' const config = { host } export default config
npm run build
,生成dist文件夾~/xbapp$ npm run build
生成的dist文件夾目錄,咱們在本地打開dist/index.html文件,測試一下樣式是否能正常顯示
linux
後端有操做數據庫的話,也須要更改數據庫名、數據庫密碼等信息nginx
用git或者scp上傳均可以,我上傳到了/mnt/xbapp目錄下面
git上傳有個須要注意的地方,項目根目錄下面的.gitigonre文件可能會將dist文件夾忽略上傳,咱們須要在.gitigonre文件中刪掉dist/git
.DS_Store dist/ //須要刪掉 npm-debug.log* yarn-debug.log* yarn-error.log*
git程序員都會,就不展開講了,以前寫過git部署項目的文章,你們能夠借鑑一下
項目上線--git部署項目程序員
下面咱們就開始在雲服務器上操做了web
koa須要node環境的支持,雲服務器若是沒有node環境須要先安裝node
node環境安裝參考文章shell
接下來咱們開始安裝koa插件
#打開server文件夾 cd /mnt/xbapp/server #刪掉node_modules文件夾和package-lock.json文件 rm -r node_modules rm package-lock.json #安裝插件 npm install #開啓項目 npm run dev
npm install
的時候,可能會報錯,好比let notifier = require('update-notifier')({pkg})
這個錯誤,大部分的錯誤是由於node版本太低引發的,能夠更新一下node版本,參考文章:linux環境升級node版本
成功運行npm run dev以後,不表明koa已經配置成功了,在瀏覽器上面輸入域名+koa開啓的端口,順利返回koa2就說明後端已經部署OK了
固然啦,在順利見到上面的效果以前,可能會碰倒許許多多的錯誤,若是npm run dev成功以後,域名+端口請求仍是顯示鏈接超時
告訴你們幾個解題思路:
ping yourdomain.com
telnet yourdomain.com 3000
端口出問題緣由有不少,你們只能根據本身的狀況來解決了,我用的是阿里雲服務器,端口請求超時的緣由是安全組中沒有開啓3000端口,添加上就能夠了。
添加端口參考文章:在安全組中添加受權端口
nginx是web代理服務器,由他將瀏覽器的請求轉發到服務器項目上面
通常安裝好的nginx都在/etc/nginx文件夾中,咱們先來看一下這裏面的nginx.conf文件,裏面能找到這麼兩條語句,意思是nginx的配置會引用/etc/nginx/conf.d/文件夾下面以.conf結尾的文件和/etc/nginx/sites-enabled/文件夾下面的全部文件
include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*;
因此,咱們在這兩個文件夾下面進行配置均可以,我比較習慣在conf.d文件夾裏面
#打開conf.d文件夾 cd /etc/nginx/conf.d #建立一個.conf文件 touch xbapp.conf #打開剛剛建立的文件 vim xbapp.conf
在xbapp.conf文件中粘貼下面的代碼,
upstream koa.server{ server localhost:3000; } server { listen 80; server_name yourdomain.com; #這裏修改爲本身的域名 root /mnt/xbapp/dist; #修改爲本身的文件夾路徑,index頁面在dist文件夾下,因此指向dist文件夾 location / { index index.html index.htm; } }
配置好了以後,輸入nginx -t
檢查一下nginx配置是否成功,成功的話,會顯示下面這兩條語句
$ nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
從新啓動nginx
service nginx restart
如今打開域名應該就能夠正常顯示項目頁面了,最後咱們來安裝pm2這個進程管理器,幫助koa後端進程長期開啓
//安裝pm2 ~$ npm install pm2 --global //檢查是否安裝成功 ~$ pm2 -v //進入項目目錄 ~$ cd /mnt/xbapp/server/ //啓動項目 /mnt/xbapp/server/$ pm2 start app.js //啓動成功返回的信息 [PM2] Starting /mnt/truth_hold/server/app.js in fork_mode (1 instance) [PM2] Done. ┌────┬────────────────────┬──────────┬──────┬──────────┬──────────┬──────────┐ │ id │ name │ mode │ ↺ │ status │ cpu │ memory │ ├────┼────────────────────┼──────────┼──────┼──────────┼──────────┼──────────┤ │ 0 │ app │ fork │ 0 │ online │ 0% │ 25.8mb │ └────┴────────────────────┴──────────┴──────┴──────────┴──────────┴──────────┘
這樣vue項目就算是部署成功了~~