一种基于NODEJS的模板自动化编译上线方法及系统与流程

文档序号:11949714阅读:231来源:国知局
一种基于NODEJS的模板自动化编译上线方法及系统与流程

本发明涉及自动化编译技术领域,尤其涉及一种基于NODEJS(是一个Javascript运行环境(runtime))的模板自动化编译上线方法及系统。



背景技术:

自动化是机器或装置在无人干预的情况下按预定的程序或指令自动进行操作或控制的过程。采用自动化技术不仅可以把人从繁重的体力劳动,部分脑力劳动工作环境中解放出来,而且还可以极大地提高劳动生产率。

现有的自动化编译工作有:Gulp(模拟的类型),Grunt(是一个基于任务的JavaScript工程命令行构建工具),Webpack(是xilinx提供的免费开发软件)等一系列的构建脚本。

以上现有技术的一些问题在于其都是用来创建编译的最基本单元,不可以直接用于实际项目工程中,还需要对其进行学习了解后,才可以重新组织功能进行开发。因此对于不了解此功能的开发人员来说,需要花时间进行培训或学习,以掌握其功能,从而提高了接入的门槛。



技术实现要素:

本发明实施例提供一种基于NODEJS的模板自动化编译上线方法及系统,以降低前端开发人员接入门槛,加快开发进度,缩短开发周期。

一方面,本发明实施例提供了一种基于NODEJS的模板自动化编译上线方法,所述方法包括:

当利用NODEJS服务监测到网页模板文件发生变化时,读取发生变化的网页模板文件;

对读取的网页模板文件进行内容规范性检测;

若所述网页模板文件的内容规范性检测通过,则对该网页模板文件进行编译,生成编译后的网页模板文件;

基于所述编译后的网页模板文件,进行数据模拟,获取数据模拟通过的网页模板文件;

将所述数据模拟通过的网页模板文件作为线上文件,更新页面服务器上对应的原有线上文件。

另一方面,本发明实施例提供了一种基于NODEJS的模板自动化编译上线系统,所述系统包括:客户端、数据模拟服务器和页面服务器,其中:

所述客户端,用于当利用NODEJS服务监测到网页模板文件发生变化时,读取发生变化的网页模板文件;对读取的网页模板文件进行内容规范性检测;若所述网页模板文件的内容规范性检测通过,则对该网页模板文件进行编译,生成编译后的网页模板文件;

所述数据模拟服务器,用于基于所述编译后的网页模板文件,进行数据模拟,获取数据模拟通过的网页模板文件;

所述页面服务器,用于将所述数据模拟通过的网页模板文件作为线上文件,更新该页面服务器上对应的原有线上文件。

上述技术方案具有如下有益效果:由于是基于NODEJS,因此比较适合前端人员进行开发和维护,降低前端开发人员接入门槛,可以帮助其加快开发进度,缩短开发周期,操作简单,只需要本地安装NODEJS环境即可。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一种基于NODEJS的模板自动化编译上线方法流程图;

图2为本发明实施例一种基于NODEJS的模板自动化编译上线系统组成结构示意图;

图3为本发明应用实例语法规范检测示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,为本发明实施例一种基于NODEJS的模板自动化编译上线方法流程图,所述方法包括:

101、当利用NODEJS服务监测到网页模板文件发生变化时,读取发生变化的网页模板文件;

102、对读取的网页模板文件进行内容规范性检测;

103、若所述网页模板文件的内容规范性检测通过,则对该网页模板文件进行编译,生成编译后的网页模板文件;

104、基于所述编译后的网页模板文件,进行数据模拟,获取数据模拟通过的网页模板文件;

105、将所述数据模拟通过的网页模板文件作为线上文件,更新页面服务器上对应的原有线上文件。

优选地,所述读取发生变化的网页模板文件,包括:利用NODEJS服务的文件读取fs.readFile()方法读取发生变化的网页模板文件。

优选地,所述对读取的网页模板文件进行内容规范性检测,包括:对读取的如下一种或者多种格式的网页模板文件进行代码书写规范和/或语法规范检测:JADE(Joint Approximate Diagonalization ofEigenmatrices,特征矩阵联合对角化),JS(JavaScript),STYLUS(是一个层叠样式表CSS的预处理框架),SASS(Statements on Auditing Standards,审计准则说明书),ES6(European Computer Manufacturers Association Script 6,欧洲计算机制造商协会通过ECMA-262标准化的脚本程序设计语言第6版),COFFEESCRIPT(是一套JavaScript的转译语言)。

优选地,所述基于所述编译后的网页模板文件,进行数据模拟,包括:基于所述编译后的网页模板文件,通过NODEJS服务执行虚拟测试功能模块Mock.mock进行数据模拟。

优选地,所述将所述数据模拟通过的网页模板文件作为线上文件,包括:通过调用模块打包器webpack的信息-摘要算法MD5以及文件压缩功能,同时利用NODEJS服务的文件读取fs.readFile()方法,将所述数据模拟通过的网页模板文件中的静态文件引用地址修改为页面服务器上对应的原有线上文件地址,更新页面服务器上对应的原有线上文件。

对应于上述方法实施例,如图2所示,为本发明实施例一种基于NODEJS的模板自动化编译上线系统组成结构示意图,所述系统包括:客户端10、数据模拟服务器11和页面服务器12,其中:

所述客户端10,用于当利用NODEJS服务监测到网页模板文件发生变化时,读取发生变化的网页模板文件;对读取的网页模板文件进行内容规范性检测;若所述网页模板文件的内容规范性检测通过,则对该网页模板文件进行编译,生成编译后的网页模板文件;

所述数据模拟服务器11,用于基于所述编译后的网页模板文件,进行数据模拟,获取数据模拟通过的网页模板文件;

所述页面服务器12,用于将所述数据模拟通过的网页模板文件作为线上文件,更新该页面服务器上对应的原有线上文件。

优选地,所述客户端10,具体用于利用NODEJS服务的文件读取fs.readFile()方法读取发生变化的网页模板文件。

优选地,所述客户端10,具体用于对读取的如下一种或者多种格式的网页模板文件进行代码书写规范和/或语法规范检测:JADE,JS,STYLUS,SASS,ES6,COFFEESCRIPT。

优选地,所述数据模拟服务器11,具体用于基于所述编译后的网页模板文件,通过NODEJS服务执行虚拟测试功能模块Mock.mock进行数据模拟。

优选地,所述页面服务器12,具体用于通过调用模块打包器webpack的信息-摘要算法MD5以及文件压缩功能,同时利用NODEJS服务的文件读取fs.readFile()方法,将所述数据模拟通过的网页模板文件中的静态文件引用地址修改为页面服务器上对应的原有线上文件地址,更新页面服务器上对应的原有线上文件。

本发明实施例上述技术方案具有如下有益效果:由于是基于NODEJS,因此比较适合前端人员进行开发和维护,降低前端开发人员接入门槛,可以帮助其加快开发进度,缩短开发周期,操作简单,只需要本地安装NODEJS环境即可。

以下结合应用实例对本发明实施例上述技术方案进行详细说明:

本发明应用实例是要解决其在项目工程中快速开发及迭代的效率。由于编译系统是基于NODEJS(是一个Javascript运行环境(runtime))多并发服务为基础进行实施开发的,所以对于前端开发人员来说接入门槛降低,同时也可以对其进行很好的维护及监管。也正是由于使用了NODEJS服务,对前端开发时所用到的模板及相应的功能也可以很容易进行操作,还可以自定义功能来对模板进行二次开发,加快了开发进度以及缩短了迭代时间。

1、模板编译

目前模板编译完全采用NODEJS做为后端服务,监听模板文件的变化。如果当前文件发生变动时,利用NODEJS的fs.readFile()方法(文件读取)将发生变化的文件进行读取同时对其代码书写规范和/或语法规范进行检测。

如图3所示,为本发明应用实例语法规范检测示意图。若模板语法正常则开始对模板内容进行编译,同时将数据一并填充到模板文件中生成对应的文件或文件内容;否则通知系统进行错误提示,将其错误信息显示出来,与此同时控制台也会有相应的提示信息展示。

2、代码检查

在对模板编译的过程中,如遇到代码书写规范或语法错误时,平台系统会第一时间将其检测并做出相应提示。

平台分别对JADE(jade-lint),JS(jshint),STYLUS(stylint),SASS(sass-lint),ES6(eslint),COFFEESCRIPT(coffeelint)等目前比较流行的编程语言进行了代码检测,一旦发生错误系统将停止编译(但不会停止服务)同时发出错误提示,直到将错误修改正确后才可以正常通过检测完成编译。

3、数据模拟

前端在开发过程中会与后端程序员有着很频繁的数据沟通。但有时后端没办法及时返回相应的数据,此时就需要前端模拟返回数据进行后续的开发工作。NODEJS通过执行虚拟测试功能模块Mock.mock(mockJson)进行数据的模拟,当有数据请求时,mocker将组织好的数据模型生成对应的JSON数据,通过平台的请求接口返回给对应的请求中。

模拟数据创建完成时,也会对其创建的模拟JSON数据格式进行检测,判断其生成的内容是否是满足当前数据内容的需要。最后当后端介入进行真实的数据传输时,系统的JSON SCHEMA也会同样对传过来的数据格式进行约定的校验。如有问题系统也会给出对应的提示信息。

模拟数据格式:

4、生成线上文件

创建上线文件的目的是要生成一个具有压缩合并以及MD5(Message-Digest Algorithm5,信息-摘要算法5)后的文件,使其与目前线上文件的格式类型与存储地址一致。以便上线后可以替代原有的线上文件来解决浏览器缓存以达到更新页面功能的作用。

创建上线文件是通过调用webpack的MD5以及文件压缩功能,同时利用NODEJS的文件读取功能fs.readFile(),对页面中对静态文件引用地址修改,修改为页面服务器上对应的原有线上文件地址。

与现有技术相比,本发明应用实例具有如下技术优点:由于是基于NODEJS,因此比较适合前端人员进行开发和维护;可以帮助其加快开发进度,缩短开发周期;操作简单,只需要本地安装NODEJS环境即可。

应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。

在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。

为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。

上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。

本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。

本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。

本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。

在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1