关于一份上传发布web(vue)项目的指令笔记

171 阅读2分钟

服务端安装依赖

git checkout .
npm install
npm run build-test

SRV_NODES="ip1 ip2"
CUR_NODE=0

for SRV in $(echo $SRV_NODES); do
	echo "====================================================="
	echo "pushing to instance[$CUR_NODE] on $SRV ..."
	echo "====================================================="

  ssh ec2-user@$SRV "cd ~/front-end-ssr && rm -rf nuxt.config.js package.json server/ static/"
  scp -r ./.nuxt/ ./package.json ./nuxt.config.js ./static/ ./server/ ec2-user@$SRV:~/front-end-ssr

  ssh ec2-user@$SRV "pm2 delete front-ssr; cd ~/front-end-ssr && cnpm i && pm2 start npm --name 'front-ssr' -- run start-test"

	CUR_NODE=$((CUR_NODE+1))
	sleep 10
done

首先刷新本地git代码,然后执行vue的安装依赖和打包指令。然后循环执行(服务器ip地址):远程到指定ip地址服务器,进入指定目录(front-end-ssr),删除nuxt.config.js、package.json文件和server、static文件夹。然后拷贝本地新的nuxt文件夹、server文件夹、static文件夹和package.json、nuxt.config.js文件到目标IP地址服务器的front-end-ssr文件夹下。接着远程到目标IP地址服务器下使用pm2 删除pm2守护的指定进程(front-ssr),进入front-end-ssr目录安装依赖(服务器端),运行服务并添加到pm2守护进程中(需要起名字,清除守护进程需要用到)。

服务端直接使用打包好的dist文件(使用pm2守护进程)

由于打包好的dist/文件夹需要使用http-server服务才能启动,所以必须使用http-server启动服务网,再使用pm2守护http-server启动的服务进程。

git checkout .
npm install
npm run build

SRV_NODES="ip1 ip2"
CUR_NODE=0

for SRV in $(echo $SRV_NODES); do
	echo "====================================================="
	echo "pushing to instance[$CUR_NODE] on $SRV ..."
	echo "====================================================="

  ssh ec2-user@$SRV "cd ~/eztrans-pms && rm -rf ./dist/"
  scp -r ./dist/ ec2-user@$SRV:~/eztrans-pms

  ssh ec2-user@$SRV "pm2 delete pms-eztrans; cd ~/eztrans-pms && pm2 start '~/.nvm/versions/node/v12.9.1/bin/http-server dist/ -p 3021' --name pms-eztrans"
	CUR_NODE=$((CUR_NODE+1))
	sleep 10
done

首先刷新本地git代码,然后执行vue的安装依赖和打包指令。然后循环执行(服务器ip地址):远程到指定ip地址服务器,进入指定目录(eztrans-pms)清空dist/文件夹,然后拷贝本地dist/文件夹到目标IP地址服务器的指定文件夹(eztrans-pms)下。接着远程到目标IP地址服务器下使用pm2 删除pm2守护的指定进程(pms-eztrans),进入指定目录(eztrans-pms)首先使用http-server启动dist/文件夹服务并指定端口号(3021)并添加到pm2守护进程中(需要起名字,清除守护进程需要用到)。 注意,不同的服务器http-server安装的未知可能不同,为确保启动服务成功,我们需要先使用which http-server来查询启动服务对应的文件路径(对应代码中的~/.nvm/versions/node/v12.9.1/bin/http-server),再以路径来启动http-server服务。