用VueJs開發(fā)快兩年了,不得不說Vue是個好框架,當時在前期部署的時候每次都很頭疼,因為次次都要很麻煩,不同的環(huán)境,測試機, 需要管理很多ip用戶名,所以想封裝一個腳本,只需要修改對應(yīng)的配置文件,就可以一個命令去部署
廢話不多說,在這個腳本運行前,需要配置部署機器的ssh key 到服務(wù)器的用戶下,具體可以參考
http://www.itdecent.cn/p/fab3252b3192(ps:雖然很想自己寫一個詳細的,無奈手太懶)
看看webpack的配置config.js 中 assetsPublicPath 配置項 為 /
然后在vue項目根目錄下創(chuàng)建兩個文件
deploy.conf
prod_branch=生產(chǎn)分支名
prod_host=生產(chǎn)機器ip
prod_user=生產(chǎn)機器用戶
prod_path=項目路徑
test_branch=測試環(huán)境分支名
test_host=測試環(huán)境機器ip
test_user=測試環(huán)境機器用戶
test_path=測試環(huán)境項目路徑
deploy.sh
#!/bin/sh
#獲取環(huán)境名
env=''
if [ x$1 != x ];then
env=$1
else
env='prod'
fi
#獲取當前分支名
curr_branch=`git symbolic-ref --short -q HEAD`
echo '當前工作分支 => '${curr_branch}'\n'
echo '讀取配置文件:'
deploy_branch=`sed '/^'${env}_branch'=/!d;s/.*=//' deploy.conf`
deploy_host=`sed '/^'${env}_host'=/!d;s/.*=//' deploy.conf`
deploy_user=`sed '/^'${env}_user'=/!d;s/.*=//' deploy.conf`
deploy_path=`sed '/^'${env}_path'=/!d;s/.*=//' deploy.conf`
echo '分支 => '${deploy_branch}
echo '地址 => '${deploy_host}
echo '用戶 => '${deploy_user}
echo '路徑 => '${deploy_path}
echo '\n'
echo '儲存當前修改'
git stash
echo '\n'
echo '切換到需發(fā)布的分支 => '${deploy_branch}
git checkout $deploy_branch
echo '\n'
echo '編譯項目'
npm run build
echo '\n'
echo '刪除老版本'
ssh ${deploy_user}@${deploy_host} "rm -rf "${deploy_path}
echo '上傳新版本'
scp -r ./dist ${deploy_user}@${deploy_host}:${deploy_path}
echo '\n'
echo '切回工作分支 => '${curr_branch}
git checkout $curr_branch
echo '\n'
echo '釋放修改'
git stash pop
echo '\n'
echo '部署成功'
使用 sh deploy.sh prod sh deploy.sh test 或者配置其他環(huán)境
后期我會把它封裝成個npm包,直接用命令配置解決這些問題