CN113127429B - 一种压缩处理方法、系统及计算设备 - Google Patents

一种压缩处理方法、系统及计算设备 Download PDF

Info

Publication number
CN113127429B
CN113127429B CN202110663589.3A CN202110663589A CN113127429B CN 113127429 B CN113127429 B CN 113127429B CN 202110663589 A CN202110663589 A CN 202110663589A CN 113127429 B CN113127429 B CN 113127429B
Authority
CN
China
Prior art keywords
compression
compression processing
file
server
source code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110663589.3A
Other languages
English (en)
Other versions
CN113127429A (zh
Inventor
刘小云
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Chezhiying Technology Co ltd
Original Assignee
Beijing Chezhiying Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Chezhiying Technology Co ltd filed Critical Beijing Chezhiying Technology Co ltd
Priority to CN202110663589.3A priority Critical patent/CN113127429B/zh
Publication of CN113127429A publication Critical patent/CN113127429A/zh
Application granted granted Critical
Publication of CN113127429B publication Critical patent/CN113127429B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种压缩处理方法,在压缩服务器中执行,包括步骤:接收客户端发送的对源代码文件的压缩处理请求,压缩处理请求包括路径信息、压缩处理对应的远程目标分支信息,所述路径信息包括源文件目录信息和压缩文件目录信息;基于源文件目录信息从资源服务器获取相应的一个或多个源代码文件;根据配置模板生成与压缩处理请求相对应的压缩配置文件;在本地目标分支,基于所述压缩配置文件,对一个或多个源代码文件进行压缩处理,生成相应的压缩文件;以及将压缩文件发布至资源服务器的远程目标分支上。本发明一并公开了相应的压缩处理系统和计算设备。根据本发明的技术方案,有利于团队协作开发,避免了设备单点故障问题。

Description

一种压缩处理方法、系统及计算设备
技术领域
本发明涉及计算机及互联网技术领域,尤其涉及一种压缩处理方法、压缩处理系统及计算设备。
背景技术
目前,技术团队成员在开发Web应用项目的过程中,需要对页面文件中的静态内容进行压缩合并处理,特别是静态的JavaScript 文件,以便提升页面的响应速度,降低客户端的连接请求的数量,并降低服务器带宽资源的占用。
根据现有的技术方案,项目组的每个团队成员分别需要在各自的客户端安装用于压缩代码文件的客户端应用,每增加一个团队成员,都需要重新配置客户端环境,而且,不同的团队成员使用的压缩算法可能不一样,这样非常不利于团队的协作开发和管理。另外,项目组一般会将对代码文件进行压缩处理的权限指定给特定的人员,特定人员才有权限对代码文件进行压缩操作,这样会导致技术人员使用上存在单点问题。
为此,需要一种压缩处理方法和系统,来解决上述技术方案中存在的问题。
发明内容
为此,本发明提供一种压缩处理方法、系统及计算设备,以解决或至少缓解上面存在的问题。
根据本发明的一个方面,提供一种压缩处理方法,在压缩服务器中执行,包括步骤:接收客户端发送的对源代码文件的压缩处理请求,所述压缩处理请求包括路径信息、压缩处理对应的远程目标分支信息,所述路径信息包括源文件目录信息和压缩文件目录信息;基于所述源文件目录信息从资源服务器获取相应的一个或多个源代码文件;根据配置模板生成与所述压缩处理请求相对应的压缩配置文件;在本地目标分支,基于所述压缩配置文件,对所述一个或多个源代码文件进行压缩处理,生成相应的压缩文件;以及将所述压缩文件发布至所述资源服务器的远程目标分支上。
可选地,在根据本发明的压缩处理方法中,根据配置模板生成与所述压缩处理请求相对应的压缩配置文件包括:根据配置模板、源文件目录信息和压缩文件目录信息生成所述压缩配置文件。
可选地,在根据本发明的压缩处理方法中,将所述压缩文件发布至所述资源服务器的远程目标分支上包括:将所述压缩文件发布至与所述压缩处理请求相对应的压缩文件目录和远程目标分支上。
可选地,在根据本发明的压缩处理方法中,在获取相应的一个或多个源代码文件之后,还包括步骤:将所述一个或多个源代码文件合并到与所述远程目标分支相对应的本地目标分支。
可选地,在根据本发明的压缩处理方法中,在将所述最新版本的源代码文件合并到本地目标分支之前,还包括步骤:检测当前分支是否是与远程目标分支相对应的本地目标分支;如果不是,则创建与所述远程目标分支相对应的本地目标分支,并切换到本地目标分支,并从资源服务器获取源代码文件到本地目标分支。
可选地,在根据本发明的压缩处理方法中,对所述源代码文件进行压缩处理的步骤包括:基于所述一个或多个源代码文件生成抽象语法树;遍历所述抽象语法树,基于所述抽象语法树对代码进行压缩处理。
可选地,在根据本发明的压缩处理方法中,所述客户端与资源服务器相连,适于基于所述远程目标分支信息从所述资源服务器获取压缩文件。
可选地,在根据本发明的压缩处理方法中,所述源代码文件为JavaScript文件。
根据本发明的一个方面,提供一种压缩处理系统,包括:资源服务器;压缩服务器,与资源服务器通信连接,适于执行如上所述的方法;以及客户端,与所述压缩服务器通信连接,适于向压缩服务器发送压缩处理请求,所述压缩处理请求包括路径信息、压缩处理对应的远程目标分支信息,所述路径信息包括源文件目录信息和压缩文件目录信息。
可选地,在根据本发明的压缩处理系统中,所述压缩服务器中包括资源客户端,所述资源客户端与资源服务器通信连接。
可选地,在根据本发明的压缩处理系统中,所述客户端与所述资源服务器通信连接,适于基于所述远程分支信息从所述资源服务器获取压缩文件。
根据本发明的一个方面,提供一种计算设备,包括:至少一个处理器;存储器,存储有程序指令,其中,程序指令被配置为适于由上述至少一个处理器执行,所述程序指令包括用于执行如上所述的压缩处理方法的指令。
根据本发明的一个方面,提供一种存储有程序指令的可读存储介质,当该程序指令被计算设备读取并执行时,使得该计算设备执行如上所述的压缩处理方法。
根据本发明的技术方案,提供了一种压缩处理方法及系统,项目组的每个开发人员均可以在各自的客户端请求压缩服务器对源代码文件进行压缩处理,压缩服务器对源代码文件压缩处理后生成的压缩文件会发布至资源服务器,并且,每个开发人员可以在各自的客户端访问资源服务器,以便基于相应的远程分支信息从资源服务器获取经过压缩服务器压缩处理后生成的压缩文件。这样,更有利于团队协作开发和管理,提高团队协作开发的效率,避免了压缩权限集中导致的设备单点故障问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的压缩处理系统100的示意图;
图2示出了根据本发明一个实施例的计算设备200的示意图;以及
图3示出了根据本发明一个实施例的压缩处理方法300的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的压缩处理系统100的示意图。
如图1所示,压缩处理系统100包括一个或多个客户端110、压缩服务器200。其中,客户端110与压缩服务器200通信连接,例如通过有线或无线的方式网络连接。
客户端110是用户(例如技术人员)使用的终端,技术人员可以在客户端110开发应用程序,例如开发Web应用,并且可以向压缩服务器200请求对代码文件进行压缩处理。应当指出,本发明对客户端110的具体种类不做限制,其具体可以实现为桌面电脑、笔记本电脑等个人计算机,也可以是手机、平板电脑、多媒体设备、智能可穿戴设备等,但不限于此。
在一个实施例中,系统100还包括资源服务器150,资源服务器150中可以存储各种代码文件。压缩服务器200与资源服务器150通信连接,例如通过有线或无线的方式网络连接,并可以基于路径信息从资源服务器150获取相应目录下的源代码文件。
压缩服务器200用于提供对源代码文件的压缩处理服务。其中,压缩服务器200可以响应于一个或多个客户端110对源代码文件的压缩处理请求,从资源服务器150获取相应的源代码文件,并对源代码文件进行压缩处理,并可以将压缩处理后的代码文件(压缩文件)发布到资源服务器150。
应当指出,本发明对压缩服务器200的具体种类不作限制。例如,压缩服务器200可以实现为桌面电脑、笔记本电脑、处理器芯片、手机、平板电脑等计算设备,但不限于此,也可以是驻留在计算设备上的应用程序。
在一个实施例中,客户端110向资源服务器150发送的对源代码文件的压缩处理请求包括路径信息、压缩处理对应的远程目标分支信息。这里,远程目标分支也即是布置在远端的资源服务器150上的目标分支。路径信息包括源文件目录信息、压缩文件目录信息。应当指出,源文件目录信息对应的目录中可以包括一个或多个待压缩的源代码文件。压缩文件目录信息对应的目录也即是针对压缩处理后生成的压缩文件而确定的目标目录。源代码文件例如是JavaScript文件,但本发明不限于此。
压缩服务器200可以基于源文件目录信息从资源服务器150获取相应目录下的一个或多个源代码文件。这里,所获取的源代码文件是当前最新版本的代码文件。并且,压缩服务器200在对一个或多个源代码文件进行压缩处理生成的压缩文件,可以基于压缩处理请求中的压缩文件目录信息和远程目标分支信息,发布到资源服务器150的相应的压缩文件目录和远程目标分支上。
另外,客户端110也可以与资源服务器150通信连接,例如通过有线或无线的方式网络连接,并可以基于路径信息从资源服务器150获取相应目录下的源代码文件。应当理解,在压缩服务器200将对源代码文件压缩处理后的压缩文件发布到资源服务器150的目标分支之后,资源服务器150上的压缩文件可以供多个客户端110获取和使用。具体地,一个或多个客户端110可以基于压缩文件对应的分支信息从资源服务器150获取该压缩文件。
在一个实施例中,压缩服务器200中驻留有与资源服务器150相对应的资源客户端250。压缩服务器200基于资源客户端250与资源服务器150通信,以便通过资源客户端250从资源服务器150获取源代码文件,并且,压缩服务器200在对源代码文件进行压缩处理生成相应的压缩文件之后,通过资源客户端250将生成的压缩文件发送至资源服务器150。
在一种实施方式中,资源服务器150例如是Git服务器,相应地,资源客户端250为Git客户端。但本发明不限于资源服务器、资源客户端的具体种类。
在一种实施方式中,客户端110与压缩服务器200之间通过网络服务器130通信连接,换言之,客户端110经由网络服务器130与压缩服务器200通信。这样,客户端110发送的对源代码文件的压缩处理请求,是经由网络服务器130发送至压缩服务器200。这里,客户端110与网络服务器130之间还可以连接网络服务器防火墙135,从而,客户端110发送的压缩处理请求经过网络服务器防火墙135之后发送至网络服务器130。
在一种实施方式中,客户端110与资源服务器150之间可以连接资源服务器防火墙155,客户端110经由资源服务器防火墙155与资源服务器150通信,客户端110请求从资源服务器150获取的源代码文件、压缩文件经由资源服务器防火墙155传送至客户端110。
在一种实施方式中,压缩服务器200与资源服务器150之间连接有内网网关140,压缩服务器200经由内网网关140与资源服务器150通信,其中,压缩服务器200从资源服务器150获取的源代码文件、压缩服务器200向资源服务器150上传的压缩文件均经过内网网关140。
在本发明的实施例中,压缩服务器200适于执行压缩处理方法。本发明的压缩处理方法300将在下文中详述。
根据本发明的压缩处理系统100,项目组的每个开发人员均可以在各自的客户端110请求压缩服务器200对源代码文件进行压缩处理,压缩服务器200对源代码文件压缩处理后生成的压缩文件会发布至资源服务器150,并且,每个开发人员可以在各自的客户端110访问资源服务器150,以便基于相应的远程分支信息从资源服务器150获取经过压缩服务器200压缩处理后生成的压缩文件。这样,更有利于团队协作开发和管理,提高团队协作开发的效率,避免了压缩权限集中导致的设备单点故障问题。
在一个实施例中,本发明的压缩服务器200可以实现为一种计算设备,使得本发明的压缩处理方法可以在计算设备中执行。
图2示出了根据本发明一个实施例的计算设备200的结构图。如图2所示,在基本配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(UP)、微控制器(UC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器206可以包括操作系统220、一个或者多个应用222以及程序数据224。应用222实际上是多条程序指令,其用于指示处理器204执行相应的操作。在一些实施方式中,应用222可以布置为在操作系统上使得处理器204利用程序数据224进行操作。
计算设备200还可以包括储存接口总线234。储存接口总线234实现了从储存设备232(例如,可移除储存器236和不可移除储存器238)经由总线/接口控制器230到基本配置202的通信。操作系统220、应用222以及程序数据224的至少一部分可以存储在可移除储存器236和/或不可移除储存器238上,并且在计算设备200上电或者要执行应用222时,经由储存接口总线234而加载到系统存储器206中,并由一个或者多个处理器204来执行。
计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图像处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中以编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
在根据本发明的计算设备200中,应用222包括执行压缩处理方法300的多条程序指令,这些程序指令可以指示处理器204执行本发明的压缩处理方法300,以便计算设备200通过执行本发明的压缩处理方法300来对代码文件进行压缩处理。
图3示出了根据本发明一个实施例的压缩处理方法300的流程图。方法300适于在压缩服务器200中执行。
应当指出,压缩服务器200与一个或者多个客户端110通信连接,并且,压缩服务器200与远端的资源服务器150通信连接。压缩服务器200可以响应于客户端110对源代码文件的压缩处理请求,通过从资源服务器150获取相应的源代码文件,并对源代码文件进行压缩处理。
具体地,如图3所示,方法300始于步骤S310。
在步骤S310中,接收客户端110发送的对源代码文件的压缩处理请求。其中,压缩处理请求包括路径信息、压缩处理对应的远程目标分支信息。这里,远程目标分支也即是布置在远端的资源服务器150上的目标分支。路径信息包括源文件目录信息、压缩文件目录信息。应当指出,源文件目录信息对应的目录中可以包括一个或多个待压缩的源代码文件。压缩文件目录信息对应的目录也即是针对压缩处理后生成的压缩文件而确定的目标目录。
在一个实施例中,源代码文件例如是JavaScript文件。
随后,在步骤S320中,响应于客户端110的压缩处理请求,基于压缩处理请求中的源文件目录信息,从资源服务器150获取相应目录下的一个或多个源代码文件。这里,所获取的源代码文件是当前最新版本的代码文件。
应当指出,压缩服务器200在响应客户端110的压缩处理请求时,是针对当前的压缩处理请求从资源服务器150获取源代码文件,从而能保证获取到当前最新版本的源代码文件,以便基于最新版本的源代码文件进行压缩处理。
在一个实施例中,通过执行git fetch命令从资源服务器150获取待压缩的一个或多个源代码文件。在从资源服务器150获取待压缩的一个或多个源代码文件之后,首先检测本地的当前分支是否是与远程目标分支相对应的本地目标分支。如果确定当前分支是本地目标分支,则将一个或多个源代码文件合并到当前的本地目标分支,以便在本地目标分支对一个或多个源代码文件进行压缩处理。
另外,如果根据检测结果确定本地的当前分支不是与远程目标分支相对应的本地目标分支,则在本地创建与远程目标分支相对应的本地目标分支,并切换到本地目标分支。这里,根据一种实施方式,通过执行git checkout -b branch origin/branch,可以从资源服务器150克隆远程目标分支到本地,从而实现在本地创建本地目标分支。随后,再基于源文件目录信息从资源服务器150获取相应目录下的一个或多个源代码文件,以便将待压缩的一个或多个源代码文件合并到所创建的本地目标分支。这里,根据一种实施方式,在从资源服务器150获取一个或多个源代码文件时,可以通过执行git pull命令来获取一个或多个源代码文件,并将获取的一个或多个源代码文件直接合并到所创建的本地目标分支。
这样,可以确保压缩服务器本地的当前分支是本地目标分支,以便压缩服务器在本地目标分支对源代码文件进行压缩处理。
随后,在步骤S330中,根据压缩服务器中的配置模板生成与压缩处理请求相对应的压缩配置文件。这里,压缩服务器200在每次处理客户端110的压缩处理请求时,分别针对当前的压缩处理请求来生成最新的压缩配置文件。也就是说,针对本次的压缩处理请求来生成用于本次压缩处理的压缩配置文件,以便基于压缩配置文件对本次压缩处理请求对应的源代码文件进行压缩处理。
随后,在步骤S340中,在本地目标分支,基于步骤S330中生成的压缩配置文件对一个或多个源代码文件进行压缩处理,生成相应的压缩文件。
应当指出,本发明不限制对一个或多个源代码文件进行压缩处理的具体方法。现有技术中对代码文件的压缩方法均在本发明的保护范围之内。
最后,在步骤S350中,将压缩文件发布至资源服务器150的远程目标分支上。这里,应当指出,根据本发明中生成的压缩配置文件对源代码文件进行压缩处理后生成的压缩文件,可以基于压缩处理请求中的压缩文件目录信息和远程目标分支信息,自动上传到资源服务器150的与压缩处理请求相对应的压缩文件目录和远程目标分支上。换言之,将压缩文件发布至资源服务器150上的与压缩文件目录信息相对应的压缩文件目录和与远程目标分支信息相对应的远程目标分支上。
根据一个实施例,根据配置模板生成与压缩处理请求相对应的压缩配置文件,可以是根据配置模板结合源文件目录信息和压缩文件目录信息,来生成与压缩处理请求相对应的压缩配置文件。
具体地,压缩服务器200中预先创建了用于进行压缩处理的配置模板,配置模板支持不同的压缩文件路径的压缩。配置模板中包括两个核心属性,分别为src(源文件目录)和tar(压缩文件目录),并对这两个属性进行了参数模板化。这样,对于客户端110每次提交的压缩处理请求,通过确定src属性对应的源文件目录信息、tar属性对应的压缩文件目录信息,便可以生成与本次压缩处理请求相对应的压缩配置文件。进而,可以基于该压缩配置文件对本次请求的一个或多个源代码文件进行统一压缩处理,这样,压缩处理后生成的压缩文件可以自动发布到资源服务器150的压缩文件目录和远程目标分支上。
在一个实施例中,压缩服务器200中驻留有与资源服务器150相对应的资源客户端250。压缩服务器200基于资源客户端250与资源服务器150通信,以便从资源服务器150获取源代码文件,并在对源代码文件进行压缩处理生之后,将生成的压缩文件发送至资源服务器150。也就是说,在本发明的方法300中,压缩服务器200与资源服务器150通信的步骤,是由压缩服务器200中的资源客户端250来执行的。
在一种实施方式中,资源服务器150例如是Git服务器,相应地,资源客户端为Git客户端。但本发明不限于资源服务器、资源客户端的具体种类。
根据一个实施例,压缩服务器200可以利用UglifyJS引擎来实现对源代码文件的压缩处理。具体地,首先基于一个或多个源代码文件生成抽象语法树(AST)。随后通过遍历抽象语法树,对抽象语法树中的代码进行压缩处理。例如,在遍历AST抽象语法树时,执行自动缩进、缩短变量名、删除块括号、去掉空格、常量表达式、连续变量声明、语块合并、删除没有访问的代码等压缩处理操作。
根据一种实施方式,压缩处理过程具体可以实现为:
利用parse-js模块,基于获取的待压缩的一个或多个源代码文件生成抽象语法树(AST)。
利用代码生成模块(the code generator),基于抽象语法树生成一个合并代码文件和源代码位置映射表(source map)。
随后,遍历抽象语法树,利用mangler模块减少合并代码文件中的变量名数量,并将其中的一个或多个变量名替换为相应的单字母,并利用scope analyzer模块确定变量定义范围和变量的引用范围。在一种实施方式中,可以利用tree walker模型树遍历模块遍历抽象语法树,并利用tree transformer模型树转换模块对抽象语法树进行转换。
随后,利用compressor压缩模块对合并代码文件进行压缩。
最后,通过执行cutepack命令,将压缩处理后生成的压缩文件发布到资源服务器150的远程目标分支上。
根据一个实施例,压缩服务器200在对源代码文件进行压缩处理之后,还向客户端110返回执行结果。在一种实施方式中,执行结果如下:
branch is pastejs //当前执行压缩分支;
path is /Js/angular/config/filter.js //执行压缩文件路径;
user is liuxiaoyun //操作用户;
fetch result is 0 //fetch的结果,0代表成功;
checkout -b result is 0 //克隆远程分支结果,0代表成功;
reset result is 0 //远程分支覆盖本地结果,0代表成功;
pull result is 0 //pull结果,0代表成功;
zip result is over //压缩状态;
push result is 0 //push结果,0代表成功;
time is :2020-12-12 18:02:15 //当前时间;
还应当指出,根据本发明的实施例,一个或多个客户端110与资源服务器150通信连接。这样,在压缩服务器200将压缩处理后生成的压缩文件发布到资源服务器150的压缩文件目录和远程目标分支上之后,客户端110通过获取相应的远程目标分支信息,可以基于远程目标分支信息向资源服务器150请求获取当前最新版本的代码文件,该代码文件也即是经过压缩服务器200压缩处理后的压缩文件。
这样,根据本发明的压缩处理方法300,项目组的每个开发人员均可以在各自的客户端110请求压缩服务器200对源代码文件进行压缩处理,压缩服务器200对源代码文件压缩处理后生成的压缩文件会发布至资源服务器150,并且,每个开发人员可以在各自的客户端110访问资源服务器150,以便基于相应的远程分支信息从资源服务器150获取经过压缩服务器200压缩处理后生成的压缩文件。这样,更有利于团队协作开发和管理,提高团队协作开发的效率,避免了压缩权限集中导致的设备单点故障问题。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,移动终端一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的压缩处理方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。

Claims (7)

1.一种压缩处理方法,在压缩服务器中执行以对源代码文件中的静态内容进行压缩合并处理,所述源代码文件为JavaScript文件,所述压缩服务器中包括资源客户端,所述方法包括步骤:
接收客户端发送的对源代码文件的压缩处理请求,所述压缩处理请求包括路径信息、压缩处理对应的远程目标分支信息,所述路径信息包括源文件目录信息和压缩文件目录信息;
基于所述源文件目录信息从资源服务器获取相应的一个或多个源代码文件,检测当前分支是否是与远程目标分支相对应的本地目标分支,如果不是,则创建与所述远程目标分支相对应的本地目标分支,并切换到所述本地目标分支,以便将所述一个或多个源代码文件合并到与所述远程目标分支相对应的本地目标分支;
根据配置模板生成与所述压缩处理请求相对应的压缩配置文件,其中,所述配置模板包括源文件目录属性和压缩文件目录属性,以便基于所述压缩处理请求确定源文件目录属性对应的源文件目录信息、压缩文件目录属性对应的压缩文件目录信息,生成与所述压缩请求相对应的压缩配置文件;
在本地目标分支,基于所述压缩配置文件,对所述一个或多个源代码文件进行统一压缩处理,生成相应的压缩文件,其中,对源代码文件进行压缩处理的步骤包括:基于所述一个或多个源代码文件生成抽象语法树,遍历所述抽象语法树,基于所述抽象语法树对代码进行压缩处理;以及
通过资源客户端将所述压缩文件发布至所述资源服务器的与所述压缩处理请求相对应的压缩文件目录和远程目标分支上。
2.如权利要求1所述的方法,其中,根据配置模板生成与所述压缩处理请求相对应的压缩配置文件包括:
根据配置模板、源文件目录信息和压缩文件目录信息生成所述压缩配置文件。
3.如权利要求1-2中任一项所述的方法,其中,
所述客户端与资源服务器相连,适于基于所述远程目标分支信息从所述资源服务器获取压缩文件。
4.一种压缩处理系统,包括:
资源服务器;
压缩服务器,所述压缩服务器中包括资源客户端,所述资源客户端与资源服务器通信连接,所述压缩服务器适于执行如权利要求1-3中任一项所述的压缩处理方法来对源代码文件中的静态内容进行压缩合并处理,所述源代码文件为JavaScript文件;以及
客户端,与所述压缩服务器通信连接,适于向压缩服务器发送压缩处理请求,所述压缩处理请求包括路径信息、压缩处理对应的远程目标分支信息,所述路径信息包括源文件目录信息和压缩文件目录信息。
5.如权利要求4所述的系统,其中,所述客户端与所述资源服务器通信连接,适于基于所述远程分支信息从所述资源服务器获取压缩文件。
6.一种计算设备,包括:
至少一个处理器;以及
存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-3中任一项所述压缩处理方法的指令。
7.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-3中任一项所述压缩处理方法。
CN202110663589.3A 2021-06-16 2021-06-16 一种压缩处理方法、系统及计算设备 Active CN113127429B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110663589.3A CN113127429B (zh) 2021-06-16 2021-06-16 一种压缩处理方法、系统及计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110663589.3A CN113127429B (zh) 2021-06-16 2021-06-16 一种压缩处理方法、系统及计算设备

Publications (2)

Publication Number Publication Date
CN113127429A CN113127429A (zh) 2021-07-16
CN113127429B true CN113127429B (zh) 2022-10-11

Family

ID=76783256

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110663589.3A Active CN113127429B (zh) 2021-06-16 2021-06-16 一种压缩处理方法、系统及计算设备

Country Status (1)

Country Link
CN (1) CN113127429B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108563444A (zh) * 2018-03-22 2018-09-21 福州瑞芯微电子股份有限公司 一种安卓系统固件源代码还原方法及存储介质
CN110603585A (zh) * 2017-05-18 2019-12-20 高通股份有限公司 用于高阶立体环绕声的音频数据的分层中间压缩

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013033242A1 (en) * 2011-08-29 2013-03-07 Latakoo, Inc. Compressing, transcoding, sending, and retrieving video and audio files in a server-based system
CN107368484A (zh) * 2016-05-11 2017-11-21 北京京东尚科信息技术有限公司 网页的静态资源文件的压缩方法及装置、获取方法及装置
CN110389773A (zh) * 2018-04-23 2019-10-29 比亚迪股份有限公司 软件发布及部署方法、装置及系统
CN109725909B (zh) * 2018-05-07 2023-07-21 中国平安人寿保险股份有限公司 代码文件打包部署方法、持续集成服务器及系统
CN109803006A (zh) * 2019-01-04 2019-05-24 福建天泉教育科技有限公司 分布式文件系统下的多文件批量打包方法、存储介质
CN110109701A (zh) * 2019-05-14 2019-08-09 重庆商勤科技有限公司 应用部署时的文件配置方法、装置及应用发布方法、装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110603585A (zh) * 2017-05-18 2019-12-20 高通股份有限公司 用于高阶立体环绕声的音频数据的分层中间压缩
CN108563444A (zh) * 2018-03-22 2018-09-21 福州瑞芯微电子股份有限公司 一种安卓系统固件源代码还原方法及存储介质

Also Published As

Publication number Publication date
CN113127429A (zh) 2021-07-16

Similar Documents

Publication Publication Date Title
CN111427766B (zh) 一种请求处理方法、装置和代理服务器
CN103092581B (zh) 一种Web前端本地开发环境的搭建方法和装置
US9122510B2 (en) Querying and managing computing resources in a networked computing environment
US8904382B2 (en) Creating instances of cloud computing environments
CN105635324A (zh) 用于浏览器或服务器的大文件上传、续传方法和装置
CN109617647B (zh) 报文转换方法、装置、计算机设备及计算机可读存储介质
US9729672B2 (en) Collaborative editing
CN110249312B (zh) 用于将数据集成作业从源框架转换到目标框架的方法和系统
CN110557284A (zh) 基于客户端网关的数据聚合方法及装置
US11080322B2 (en) Search methods, servers, and systems
CN111049889B (zh) 一种静态资源上传方法、装置、集成服务器和系统
CN111586097A (zh) 一种网络请求处理方法、计算设备及存储介质
JP5604016B1 (ja) スクリプトのキャッシュ方法及びそれを適用した情報処理装置
CN114489622A (zh) 静态资源管理方法、Node.js应用、电子设备和存储介质
CN113885915A (zh) 一种服务更新方法、模块及系统
CN113127429B (zh) 一种压缩处理方法、系统及计算设备
US20160149991A1 (en) Bulk upload of collaborative documents to an online document management system
US9224010B2 (en) Secure document creation from potentially unsecure source templates
CN111814029A (zh) 一种数据查询方法、系统及计算设备
CN114070844B (zh) 一种文件下载方法、装置、计算设备及存储介质
CN113590564B (zh) 数据存储方法、装置、电子设备及存储介质
CN115348246A (zh) 多用户在线代理抓包调试的方法、设备、系统及介质
CN111782157B (zh) 快递面单打印管理方法、装置及系统
CN113535650A (zh) 一种文件命名方法及计算设备
CN110874302A (zh) 一种埋点配置信息的确定方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant