以下实例项目为vue项目,其他项目当然也雷同咯
在项目中建一个这个么脚本文件
不说了,上代码
#!/bin/sh handle=$1;
env=$2; # 远程部署机 webhook
# 如果用远程机器部署的话就要用到以下方法
# preHandle(){
# git pull orgin master
# npm config set registry http://registry.npm.taobao.org/
# npm install
# npm run build-prod
# }
# 清空dist目录
emptyRemoteDist(){
if [ $env == "prod" ]
then
echo "[exec]remove remote:yourip folder"
ssh root@yourip "rm -rf /www/jiketoutiao_admin/*"
else
echo "[exec]remove remote:yourip folder"
ssh root@yourip "rm -rf /www/jiketoutiao_admin/*"
fi
}
# 发送文件到正式服
transferFileToProSever(){
echo "[exec]transfer file to product:yourip sever"
scp -r ./dist/* root@yourip:/www/jiketoutiao_admin/
}
# 发送文件到测试服
transferFileToTestSever(){
echo "[exec]transfer file to development::yourip sever"
scp -r ./dist/* root@yourip:/www/jiketoutiao_admin/
} if [ $handle == "build" ]
then
if [ $env == "prod" ]
then
env='prod'
echo "[exec]build ==> build production"
npm run build-prod
emptyRemoteDist
transferFileToProSever
else
env='dev'
echo "[exec]build ==> build development"
npm run build
emptyRemoteDist
transferFileToTestSever
fi
fi
首先你得把部署机(可能是你本地机器)的ssh公钥(~/.ssh/id_rsa.pub)配置到对应服务器(~/.ssh/authorized_keys)
命令走起就可以直接发布了
例1:发布到测试服
./deploy.sh build dev
例2:发布到正式服
./deploy.sh build prod
这些后面的参数名称自己按照爱好改就行
然后在这讲一下npm run build-prod的操作,先在package.json这样配置
"scripts": {
"dev": "node build/dev-server.js development-server",
"dev-prod": "node build/dev-server.js production-server",
"build": "node build/build.js development-server",
"build-prod": "node build/build.js production-server"
},
其实就是在执行对应操作的时候加上自定义的参数,这些参数production-server干啥用呢,看下面
然后用来在项目中做一些配置,配置一些测试服正式服的域名啥的
嗯,就这些东西了,从此部署项目的时候再也不用打开FTP“选中->拖拽”了,麻烦