在服务器上发版,已经成为了一个前端开发者的烦恼,因为过程非常的重复,且无意义。我们希望通过一些更加极客的方式,来完成,应该怎么做呢?
手动发版
这种属于最古老的方式,非常适用于刚入门的小白发版。可能造成人为的失误,而且不能自动化,简而言之,就是在自己开发的电脑上打完包后,通过一些软件,比如FileZilla ,拖到服务器的文件夹内,完成发版。
推荐指数:3星。
虽然操作繁琐,但好上手,小白也能玩
jenkins 发版
jenkins 的上手门槛要比较高一些,有许多的配置项,尤其是对我们前端开发者而言。但配置好后,发版就变得优雅且舒适了。
总体而言,多看看多学学,还是可以学会的,而且还能增加一项吹嘘的资本,面试简历上可以写上掌握CI&CD持续集成部署。在面试官面前疯狂装逼。
但jenkins对运行的服务器有一定的要求,比如我的个人服务器1核2g在Jenkins打包的过程中,就直接让服务器GG了,如果生产的服务器,应该是可以完全胜任的。就是在不熟悉的时候,需要有些试错的空间。
如果公司有运维,则可以直接请运维部署,这样就简单很多了。
推荐指数:4星
git + 宝塔计划任务
对于前端而言,我的个人服务器就安装了宝塔面板,可以解决我许多问题,少了一些上手门槛。
宝塔里面有个计划任务,可以定期或手动来执行脚本。我们作为开发,只需要将代码推送到github上。然后让在宝塔面板中点击构建即可。
比如我一个小的前端项目,脚本就这样编写。
cd /you project path
echo"切换目录成功"
git pull
npm i
echo "执行安装完毕"
npm run build
echo "执行打包完毕"
# 将打包的文件,复制替换到生产目录中。
\cp -rf /you build path/* /prod path/
ehco "发版完成"
这种方式很适合部署个人项目,需要提前在服务器上安装node + git 剩下把脚本写好就行了,很舒服。发版体验和Jenkins差不多,比Jenkins low一点。但好在上手难度低,小白也能玩转。而且对服务器要求也没那么高。
不过因为打包的过程是在服务器中完成的,小水管服务器还是有几率GG。
推荐指数:4星
通过ssh上传到服务器。
前面2种方式,简单是简单,但由于打包过程在服务器上,会造成服务器的负担,那么我就想,通过脚本方式,在自己电脑打包然后传到服务器上,不就好了?
我们先在电脑上执行 npm run build 打好包,然后通过ssh传到服务器上
- 打包
npm run build
- 上传至服务器
执行
# user = 用户名
# server = 服务器IP
scp -o "StrictHostKeyChecking=no" -r ./buildPath/* user@server:/prod-path/
如果我们想不输入密码就可以传输服务器,可以执行下面的命令,以下的命令会将sshKey追加的服务器中,这样我们下次连接就可以免去登录的步骤
cat ~/.ssh/id_rsa.pub | ssh user@server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
以上就是我所了解的所有关于前端发版的内容,如果还有其他的方法,欢迎留言讨论。