Vue 項目部署到GitHub Pages並同步到Gitee Pages


前言:相信很多前端開發者都擁有自己的vue項目,若想把自己的項目做成網站分享給大家看,最常用的就是利用Github提供的GitHub Pages服務和Gitee提供的Gitee Pages服務。其中,Github是國外網站,Gitee是國內網站(訪問速度較快)。本文給大家介紹的是如何將 vue-cli 3.0+項目部署到github pages 並同步到 gitee Pages上。

一、服務說明與注意事項

在你的github項目設置的GitHub Pages項,有這么一句話:

GitHub Pages is designed to host your personal, organization, or project pages from a GitHub repository.
譯:GitHub Pages旨在從GitHub存儲庫中托管您的個人、組織或項目頁面。

這句話主要是介紹GitHub Pages的宗旨,Github Pages 官網上有其他的一些介紹,由於都是英文,我們看着費勁,不如直接看Gitee Pages 服務的說明,兩者都差不多。
Gitee Pages 服務說明
注意事項大家了解一下切勿違反就行,這里重點給大家說的是紅框圈出的內容,Pages服務只支持靜態項目,若你的項目需要服務器支持,就不適合部署到這上面了。

二、項目配置注意事項

1、vue-router 不要開啟 history 模式

正常項目中我們會因為網站路徑中帶有“#”而將vue-router開啟history模式,以去掉#號。但開啟history模式需要服務器的支持,因此在github pages中不支持這一模式,所以我們不能開啟history模式。

2、在 vue.config.js 中設置正確的 publicPath

要將項目部署到 https://<USERNAME>.github.io/<REPO>/ 上 (即倉庫地址為 https://github.com/<USERNAME>/<REPO>),可將 publicPath 設為 "/<REPO>/"。
舉個例子,我的倉庫名字為“vue-admin-web”,那么 vue.config.js 的內容應如下所示:

// vue.config.js
module.exports = {
  publicPath: process.env.NODE_ENV === 'production'
    ? '/vue-admin-web/'
    : '/'
}

三、部署github項目

做好上述的配置后,就可以把項目推送到github上了,這里假設你已經建好了倉庫,並成功把項目推送到了該倉庫下。接下來,我們有兩種方法,把你的項目部署到github pages上。【參考 vue-cli 官方說明】
方法一:手動推送更新
1、在項目目錄下,創建內容如下的 deploy.sh 文件

#!/usr/bin/env sh

# 當發生錯誤時中止腳本
set -e

# 構建
npm run build

# cd 到構建輸出的目錄下 
cd dist

git init
git add -A
git commit -m 'deploy'

# 部署到 https://<USERNAME>.github.io/<REPO>
git push -f git@github.com:<USERNAME>/<REPO>.git master:gh-pages

cd -

2、運行該文件
在項目目錄下打開cmd命令窗口(快捷方法:在項目目錄下,按住Shift鍵,然后鼠標右鍵,選擇“在此處打開命令窗口”)

// Linux環境下
bash deploy.sh
// Windows環境下
deploy.sh

運行后,git就會執行該文件里的命令。大致就是,構建打包項目代碼,然后將打包后的代碼上傳到倉庫中的 gh-pages 分支。(注意:新建的倉庫默認只有master分支,沒有gh-pages分支,但不需要你手動新建該分支,運行該文件后,會自動幫你生成gh-pages分支)
這樣,你的項目就已經部署到github pages 了。在你的github項目的 Settings - Options 下的 GitHub Pages項里,可以看到你的項目線上網站地址。
示例:https://marco-hui.github.io/vue-admin-web/
在這里插入圖片描述
方法二:使用 Travis CI 自動更新
上面手動更新的方法已經能夠完成項目的部署了,但每次版本迭代,你都需要手動去執行一下deploy.sh這個文件,雖然也不是很麻煩,但精益求精的我們,自然希望更簡單一點,就是當你把代碼push到master分支后,就可以自動去完成構建和上傳gh-pages分支,即自動完成部署。利用Travis CI就可以做到這點:

1、生成一個擁有“repo”權限的 GitHub 訪問令牌
獲取令牌方法按照github官網介紹去操作就行,很簡單,這里不多做介紹。

2、授予 Travis 訪問倉庫的權限
用你的github賬號,登錄 Travis CI 官網,登錄完成后,點擊頁面左邊的新建按鈕,進入你的倉庫頁面。
在這里插入圖片描述
在這個頁面會顯示你github上所有的項目,打開你所要部署的項目開關后,點擊 Settings 。
在這里插入圖片描述
在設置頁中,我們需要定義幾個環境變量,如下圖所示。
在這里插入圖片描述
定義完畢后,進入第3步。

3、在項目根目錄下創建一個內容如下的 .travis.yml 文件。

language: node_js
node_js:
  - "8"

install:
  - npm install

script:
  - npm run build

after_success:
  - cd ./dist
  - git init
  - git config --global user.name "${U_NAME}"
  - git config --global user.email "${U_EMAIL}"
  - git add .
  - git commit -m "Automatically update from travis-ci"
  - git push --quiet --force  "https://${GH_TOKEN}@${GH_REF}" master:${P_BRANCH}

branches:
  only:
    - master

4、將 .travis.yml 文件推送到倉庫來觸發第一次自動構建。
.travis.yml上傳到倉庫的master分支后,會自動進行一次構建部署,此后的所有git push 到master的操作,都會觸發自動更新。這樣,你的github pages網站就會實時更新最新內容啦。

至此,我們就完成了Vue項目自動部署到GitHub Pages啦!但github畢竟是國外網站,有時訪問起來特別慢,所以我們就會考慮把項目部署到國內網站gitee上面。有了github項目的基礎,部署到Gitee Pages就變得尤為簡單啦,只需要在gitee上同步github的項目即可。

四、同步到Gitee Pages

1、導入github項目
登錄Gitee官網,在右上角 “+” 中選擇“從GitHub導入倉庫”,當然前提是你已經綁定了github賬號作為你的gitee第三方賬號,未綁定的在 設置 - 第三方賬號綁定 即可。
在這里插入圖片描述
進入到導入Github倉庫頁,選擇你要導入的項目。
在這里插入圖片描述
導入成功后,你會發現,除了master的代碼被導過來,所有分支和標簽也被同步過來了。
在這里插入圖片描述
2、開啟Gitee Pages服務
項目導入成功后,接下來我們需要開啟該項目的Gitee Pages服務。點擊項目上方的 服務-Gitee Pages,進入Gitee Pages 服務配置頁。
在這里插入圖片描述
部署分支選擇 gh-pages,部署目錄不填,勾選強制使用HTTPS,點擊啟動,隨后會進行部署。
在這里插入圖片描述
部署成功后,會在當前頁面看到你的Gitee Pages網站地址,打開地址即可看到你的項目網站,和GitHub Pages的一模一樣,而且Gitee Pages網站加載會快很多。
示例:https://marco-hui.gitee.io/vue-admin-web
在這里插入圖片描述
3、項目更新
往后項目的更新,首先還是先將代碼push到github上面,待GitHub Pages部署成功后,再在gitee的項目中,點擊更新按鈕,將github項目的代碼強制同步到gitee中即可。
在這里插入圖片描述
以上,我們就完成了將Vue 項目部署到GitHub Pages,且實現自動部署,並同步到Gitee Pages上。

附:
項目github地址:Marco-hui/vue-admin-web
項目GitHub Pages網站地址:https://marco-hui.github.io/vue-admin-web
項目Gitee Pages網站地址:https://marco-hui.gitee.io/vue-admin-web


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM