前端項目無獨立部署環境時,使用shell命令簡化依賴後臺部署的繁雜操做

背景

有一些前端項目,沒有獨立的的各環境部署流程,須要依附後臺項目的靜態服務來一同部署,這種狀況下,前端同窗提交一次代碼將會是很繁雜的操做html

  1. 修改代碼
  2. 打包項目
  3. 前端項目git提交
  4. 拉取後臺項目最新代碼
  5. 刪除後臺項目的靜態服務目錄下,舊的前端打包資源
  6. 把新的前端資源複製到靜態服務目錄下
  7. 後臺項目git提交

一次兩次的上線還可容忍,但測試階段,修改bug時,就須要不停重複上述流程,來部署測試環境。忍無可忍,無須再忍。。。前端

使用shell腳本組合這一系列的操做,省時省力

#!/bin/bash
# 進入後臺項目 靜態資源目錄 =======
cd ./background-project/web/src/main/resources/static/
# 獲取當前分支 =======
branch=$(git symbolic-ref --short HEAD)

# 拉去當前分支最新代碼 =======
git pull origin "$branch"
echo -e "\n\nbackground-project項目當前的分支爲: $branch"

read -p $'\n\n請確認分支,是否繼續操做?y or n: ' isContinue
if [ "$isContinue" != 'y' ];then 
    exit
fi

# 替換文件 =======
# 刪除舊的打包資源
rm -r ./static
rm index.html
# 複製新的打包資源到後臺目錄下
cp -r ../../../../../../fe-project/dist/* ./
git status
read -p $'\n\n已替換文件成功,是否繼續提交操做?y or n: ' isContinueSubmit
if [ "$isContinueSubmit" != 'y' ];then 
    // 撤銷這次複製操做
    git reset --hard HEAD
    git clean -f
    exit
fi

# git提交 =======
git add .
read -p $'\n\n請輸入您的commit信息: ' commitInfo
git commit -m ${commitInfo}
git push origin ${branch}

複製代碼

項目地址linux

使用

  • 本人把shell文件放在了與先後端項目同級的目錄下。也能夠把它放在後端項目的靜態目錄下,記得把它添加進.gitignore避免提交就能夠了。
  • 自行修改前端項目打包資源路徑後端項目靜態資源目錄路徑
  • git bash(windows)或終端(linux)中進入shell文件目錄下,使用sh命令便可執行shell文件:sh ./shell-tool.sh

難度不大,僅僅是一些shell命令和git命令的堆砌,但也學了一些東西

  • echo -e能夠識別轉義字符。能夠在輸出時加入換行符 echo -e '\n hello world'實現換行
  • 使用$''形式的字符串,能夠在read命令中使提示語換行。see here
  • read命令
  • git獲取當前項目分支
    • branch=$(git symbolic-ref HEAD | sed -e 's,.*/\(.*\),\1,')
    • see here
相關文章
相關標籤/搜索