在常规的前端项目中,部署项目需要经过本地构建、压缩文件、将压缩包上传到服务器并解压等过程,过程比较繁琐。于是写了一个nodejs脚本告别了手动上传的过程。易于配置和使用,实现前端一键自动部署。前端自动编译部署脚本目前支持windows上传到linux服务器,linux上传到linux服务器。如果觉得对你有帮助,点个赞或者去GitHub点个star吧。非常感谢项目git地址。Step1.下载项目,gitclonehttps://github.com/HEJIN2016/auto-deploy.git将项目中的autoDeploy.js文件复制到前端项目根目录下(与dist目录同级)前端打包后)2.安装依赖:npminstallarchiverssh2-D3。配置前端项目部署服务器用户密码等。在autoDeploy.js中,找到第一行的对象Config,配置相关参数,配置如下constConfig={host:'test.com',//服务器ip地址或域名port:22,//服务器ssh连接端口号username:'root',//ssh登录用户password:'',//password//privateKey:fs.readFileSync('myKey.key'),//privatekey,private密钥和密码任选其一catalog:'/var/www/test',//前端文件压缩目录,不要以/符号结尾buildDist:'dist',//前端文件打包目录,默认distbuildCommand:'npmrunbuild',//打包前端文件的命令,默认为npmrunbuildreadyTimeout:20000//ssh连接超时时间};4.执行上传命令nodeautoDeploy.js,耐心等待部署完成。推荐安装nodeautoDeploy.js在package.json中添加命令,介绍部署的基本流程1.执行构建命令2.压缩打包后的文件//创建文件输出流letoutput=fs.createWriteStream(__dirname+'/'+文件名);letarchive=archiver('zip',{zlib:{level:9}//设置压缩级别});//文件输出流结束output.on('close',function(){console.log(`----压缩文件总计${archive.pointer()}bytes----`);console.log('----压缩文件夹完成----');resolve({success:true})});//数据源是否耗尽output.on('end',function(){console.error('----压缩失败,数据源耗尽----');reject();});//归档警告archive.on('warning',function(err){if(err.code==='ENOENT'){console.error('----stat失败和其他非阻塞错误----')}else{console.error('----压缩失败----');}reject(err);});//归档错误archive.on('error',function(err){console.error('----归档错误,压缩失败----');console.error(err);reject(err);});//通过管道方法将输出流归档到文件中archive.pipe(output);//将所有文件和目录打包到distarchive.directory(filePath,false);//archive.directory(`../${Config.buildDist}/`,false);//完成存档archive.finalize();3.ssh连接服务器并上传文件4.解压上传的文件5.删除本地压缩包文件,已部署
