一对一免费咨询: 13913005726 025-66045668

跨平台项目最麻烦就是部署了,传统的跨平台可能是Linux/Windows/Mac,但现在我们讲的跨平台还要加上网站、各种浏览器插件、Facebook扩展、iOS、iPad、Windows Phone等等。所以这个时候,自动化测试与自动化部署都非常重要,自动化部署还包括Linux服务器生产环境的自动化部署。

我最近在做一个实验性的项目,项目基于Node.js开发,目标就是用Javascript开发一个全平台的项目。跨平台项目其中一个问题就是部署问题,为了方便项目的管理,一个跨平台的项目很多时候文件是整合在一起的,比如说在iOS下的代码和Windows Phone下的代码可能略有些不同,但我们为了便于项目的管理,会将同样的业务逻辑代码放到Biz目录下。再比如说,同样的JS代码服务器和客户端都会用到,我们通常会将这些代码放到一起来管理。

所以我们在最渝中网站建设公司终发布的时候,需要对文件进行合并,甚至根据目标平台去修改一些代码。这里插一句,跨平台如果能做到共用80%的代码,那就已经不错了,借助自动化部署,我们可以让跨平台更加简单地实现。特别是基于Javascript的项目,我们需要对代码进行压缩混淆,还需要将Less转换为CSS,将Jade转换为HTML等等。

如果我们一个个全部用手工去做,一次两次可能还没什么,多了人会疯不算,还容易出错。我们经常讲自动化,能用机器做的事,尽量不要用人去做,同样的错误人会犯很多次,机器只会犯一次,当然这是在你改正的情况下。

言归正传,以我现在的项目为例,自动化部署基本上要做这么几件事:

1.合并文件,开发中文件很分散,但这显示不利于提高网站的速度,做过优化的人都知道,一个网站的文件不要太多,所以需要将JS和CSS文件合并成为一个,最好是不超过5个CSS/JS文件

2.压缩JS,在开发中会有大量的注释,变量命名也会很长,没什么好说的,用uglify压缩JS。

3.根据平台处理JS,我的观点是跨平台项目能做到80%的代码重用就不错了,各平台还有自己的特性。很简单的例子就是Node.js会经常用到exports和require,而客户端JS是不需要用的。当然还有很多的细微差别,我的做法就是将共用代码标识出来,比如说加上//==deploy==,凡事这个标识中间的代码,在客户端JS合并的时候,需要提取出来。有些时候我们可能还需要根据平台略为修改一下代码。

4.生成CSS并压缩,项目中的CSS是用Less写的,但我不想又加载一个Less.js给浏览器解释,所以需要提前生成CSS,幸好Less支持Node.JS。

5.生成静态的HTML,HTML我是用jade开发的,jade也可以实时生成,但我还是觉得生成静态的html好一些,因为我希望静态文件直接交给Nginx处理,而不是交给Node.js处理。项目数据与实现完全分离,运行HTML的服务器可能不支持Node.JS,所以我需要根据需要生成多国语言的HTML文件,目前支持简繁英三种语言,就需要生成这三种语言的HTML文件。

6.根据不同语言,实现链接不同的静态文件,我的服务器放在国外,国内用户的静态文件准备读取阿里云的存储。国外用户的静态文件也是分离的,一来提高速度,二来可以减轻主服务器的压力。虽然从访问量来说,对服务器不会构成任何压力,但从构建可伸缩的项目的角度来看,这点是完全有必要的。

7.修改版本号,对于Chrome和iOS程序,每次构建发布都要升级版本号,有些需要Zip压缩

8.根据不同平台部署不同的文件,因为我项目的文件是集中管理的,但不同平台有自己特有的文件,比如说Chrome是有manifest.json文件的。滨州网站建设公司

基本上就是这样,未来会根据实际需要,自动生成网站、Chrome、iOS等项目所需要的项目文件,生成完成后就部署到本地模拟环境上。经过黑盒测试没有问题后,再由自动化部署项目将代码部署到生产环境上去。这里要重点提示一下,你不要做得太自动化了,中间一定要经过本地模拟环境上的黑盒测试,不要太相信程序。你如果把FTP这一块也做到一起,一点自动化部署,直接就生成并部署到生产环境上去了,看上去是很酷啊,结果悲剧了,中间出了个问题,老板把你给骂死了。

大概花了我两天的时间,部署的效率那是相当地高,基本上几秒钟就把网站和Chrome的插件给生成了。虽然我们老讲每日构建,但实际上操作起来还是很困难的。如果项目比较大,我们还可以把这个自动化部署做得更加智能,也还可以把iOS也做成自动化部署的,直接调用xCode编译生成ipa的文件。

注:本文由站长之家专栏作者涂雅供稿,如需公司企业品牌网站建设转载,请注明出处。


 


 南京牧狼文化传媒有限公司简介:


      牧狼传媒,牧者之心,狼者之性,以牧之谦卑宽容之心待人,以狼之团结无畏之性做事!


  公司注册资金100万,主营众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放以及电商营销推广全案等相关业务,致力于为客户提供更有价值的服务,创造让用户满意的效果!


  为百度官方及其大客户、苏宁易购、金山WPS秀堂、美的、创维家电、新东方在线、伊莱克斯、宝丽莱等国内国外知名品牌服务过,服务经验丰富!同时,公司也是南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位,可以为您提供更好的服务!


  主营项目:众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放、竞价托管、网站优化、电商代运营等


  合作客户:百度、苏宁易购、饿了么、美的、创维家电、新东方在线、宝丽莱、金山WPS秀堂、伊莱克斯


  资质荣誉:百度商业服务市场2017年度最佳图片服务商、南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位、八戒通TOP服务商、"易拍即合杯"H5创意大赛"三等奖"。



致力于为客户创造更多价值
13913005726 025-66045668
需求提交
电话咨询
在线咨询