前端代码的简单部署

2020-12-14  本文已影响0人  Small_Song

在前端的工作流中呢,前端还是要接触到运维服务器的,要会部署前端资源。比如,当第一次部署时,运维小伙伴给你配置好之后,测试环境就可以正常访问了。后期的前端资源会频繁更新,每次更新前端资源,都去麻烦人家就不太好了吧!这个时候,前端申请服务器权限,自己部署,这样就能随时更新测试环境。

部署过程

Nginx配置

我也尝试了一下简单的Nginx配置,就是把root指向到刚才的/home/jason/web目录,会碰到很常见的403错误,我也查了一下,就是访问权限的问题,参照这个http://aftercode.club/afterco... 处理了一下,然后就能访问了。前端不一定要对Nginx很熟,但是简单的配置、转发等还是有必要了解的,这也是我对自己的要求。


deploy.sh脚本写好之后,部署就变成三步了:

这样就完成了一次简单的部署,前端代码如果有变动,前端自己就很方便地部署了。也建议前端买个服务器,自己玩玩,毕竟前端已经不是以前的前端了,掌握点服务端的知识还是必要的。

metadata-changsha 的例子

const path = require('path')
const fs = require('fs')
const moment = require('moment')
const { execCmd } = require('./utils')

const indexHTMLPath = path.resolve(__dirname, '../dist/index.html')
const indexHTML = fs.readFileSync(indexHTMLPath, 'utf-8')
fs.writeFileSync(indexHTMLPath, indexHTML.replace('%lastDeployTime%', `${moment().format('YYYY-MM-DD HH:mm:ss')}`), 'utf-8')

const host = 'root@172.21.1.197'
const clearArr = ['rm -rf /var/www/html/metadata', 'mkdir /var/www/html/metadata']
const cmdArr = [
    `ssh ${host} '${clearArr.join(';')}'`,
    `scp -r ${path.join(__dirname.replace(/build$/, 'dist'), '*')} ${host}:/var/www/html/metadata`
]
const cmd = cmdArr.join(';')

execCmd(cmd, (stdout) => {
    console.log('部署完成', stdout)
})

上一篇下一篇

猜你喜欢

热点阅读