使用shell脚本自动化打包部署前端项目
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| #!/bin/sh
set -e
trap 'echo "退出: $?"' EXIT
CURRENT_TIME=`date "+%Y%m%d%H%M"`
SHELL_FOLDER=$(basename $(pwd))
FILE_NAME="$SHELL_FOLDER-$CURRENT_TIME.zip"
FOLDER="dist"
echo "开始打包" npm run build
echo "打包完成, 开始压缩文件"
FILES=$(echo $(cd $FOLDER;ls)) echo $FILES
cd $FOLDER zip -r $FILE_NAME $FILES
mv $FILE_NAME ../
echo "文件名为:$FILE_NAME"
cd ../
echo "上传打包文件至服务器..."
scp $FILE_NAME [服务器]:/www/wwwroot/home
echo "上传完成,开始解压..."
ssh [服务器] "cd /www/wwwroot/home && unzip -o $FILE_NAME && rm $FILE_NAME"
rm $FILE_NAME
echo "更新完成,请刷新网页查看效果"
|
代码中的`[服务器]是指服务器地址,最好是配置ssh免密登录,并在ssh的config文件中配置别名,方便连接使用
如下配置好之后代码中的[服务器]就可以替换为 [服务器代称]
在 ~/.ssh/config 中进行配置
1 2 3 4 5 6
| Host [服务器代称] HostName [服务器ip] Port [服务器连接端口号] User [服务器用户名] IdentityFile [密钥路径]
|