CN107391161B - 一种JavaScript模块安装方法及装置 - Google Patents

一种JavaScript模块安装方法及装置 Download PDF

Info

Publication number
CN107391161B
CN107391161B CN201610326939.6A CN201610326939A CN107391161B CN 107391161 B CN107391161 B CN 107391161B CN 201610326939 A CN201610326939 A CN 201610326939A CN 107391161 B CN107391161 B CN 107391161B
Authority
CN
China
Prior art keywords
module
installation
storage directory
file storage
directory
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
CN201610326939.6A
Other languages
English (en)
Other versions
CN107391161A (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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610326939.6A priority Critical patent/CN107391161B/zh
Publication of CN107391161A publication Critical patent/CN107391161A/zh
Application granted granted Critical
Publication of CN107391161B publication Critical patent/CN107391161B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种JavaScript模块安装方法及装置。一种JavaScript模块安装方法包括:为待安装项目建立模块文件存储目录;针对待安装项目模块依赖链中涉及的每个模块,执行以下安装操作:将该模块的内容文件复制到所述模块文件存储目录;以及在该模块的父依赖对象的依赖库目录中,建立软链接,令该软链接指向该模块在所述模块文件存储目录中的安装路径。本申请技术方案可以有效提升模块的安装效率,而且能够有效降低项目文件的体积,从而降低用户下载项目文件的代价,提升用户的使用体验。

Description

一种JavaScript模块安装方法及装置
技术领域
本申请涉及计算机应用技术领域,尤其涉及一种JavaScript模块安装方法及装置。
背景技术
JavaScript是一种直译式脚本语言,目前广泛用于Web应用开发。早期的JavaScript并不支持模块化编程,随着Web应用功能的日益复杂,模块化编程成为迫切的需求,随之也产生了一些可以在JavaScript环境中实现模块化效果的方案。
在一个JavaScript项目中,模块之间往往具有较为复杂的依赖关系,根据现有的方案,如果项目中的多个模块依赖了同一个模块,则需要在在安装每个模时分别安装一次这个被依赖模块,导致安装效率降低,而且后续对项目进行构建时,也会导致构建后的项目文件体积增加、使得用户需要消耗更多的代价(时间、网络带宽等)来下载文件。
发明内容
针对上述技术问题,本申请提供一种JavaScript模块安装方法及装置,技术方案如下:
一种JavaScript模块安装方法,该方法包括:
为待安装项目建立模块文件存储目录;
针对待安装项目模块依赖链中涉及的每个模块,执行以下安装操作:
将该模块的内容文件复制到所述模块文件存储目录;
以及
在该模块的父依赖对象的依赖库目录中,建立软链接,令该软链接指向该模块在所述模块文件存储目录中的安装路径。
一种JavaScript模块安装装置,该装置包括:
存储目录创建单元,用于为待安装项目建立模块文件存储目录;
安装执行单元,用于针对待安装项目模块依赖链中涉及的每个模块,执行以下安装操作:
将该模块的内容文件复制到所述模块文件存储目录;
以及
在该模块的父依赖对象的依赖库目录中,建立软链接,令该软链接指向该模块在所述模块文件存储目录中的安装路径。
本申请所提供的技术方案,利用软链接方式,使得在同一JavaScript项目中,一个模块无论被依赖多少次,其内容文件都仅需安装一份。相对于现有方案而言,可以有效提升模块的安装效率,而且能够有效降低项目文件的体积,从而降低用户下载项目文件的代价,提升用户的使用体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本申请的JavaScript模块安装方法的流程示意图;
图2是本申请的JavaScript模块安装装置的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请保护的范围。
假设对于一个JavaScript项目a,依赖了模块b和模块c,而模块b和模块c又都依赖了模块d。那么,在进行项目开发时,需要先分别独立安装a项目的依赖模块b和c。而在安装模块b和c的过程中,又会分别安装模块d。根据现有的模块安装方案,在安装结束之后,项目的目录结构示意如下:
Figure BDA0000992153830000031
其中,“modules”是约定的依赖库目录名称,b和c作为a的依赖模块,被安装在a的modules目录下,而d作为b和c的依赖模块,又分别被安装在c的modules目录下以及d的modules目录下。可见,由于b和c是分别独立进行安装,因此在整个项目的安装过程中,模块d被安装了两次。也就是说,在项目a中,模块d的内容文件实际是存在冗余的,进而导致安装效率降低,项目文件体积增大等问题。可以理解的是,实际应用中,模块的依赖关系越复杂、且单个模块的代码数量越大,则上述问题的影响就会越严重。
针对上述问题,本申请提供一种JavaScript模块安装方法的流程图,参见图1所示,该方法可以包括以下步骤:
S101,为待安装项目建立模块文件存储目录;
S102,将项目模块的内容文件复制到模块文件存储目录;
S103,在该模块的父依赖对象的依赖库目录中,建立软链接,令该软链接指向该模块在模块文件存储目录中的安装路径。
上述步骤中,S101是在一次项目安装过程中仅需执行一次的步骤,而S102和S103则是需要针对项目中每个模块遍历执行步骤。具体而言,这些模块包括待安装项目模块依赖链中涉及的每个模块,而对于其中任意一个模块来说,可以是项目的依赖模块(第1级依赖模块),也可以是其他模块的依赖模块(第2、3、4…级依赖模块)。
与现有技术相比,本申请在安装JavaScript项目时,并不将依赖模块的相关文件安装在项目或模块的依赖库目录中,而是新建立一个专门用于存储各个依赖模块相关文件的目录,并将所有模块的相关文件统一存储在该目录中。为方便描述,在本申请中将这个新增的目录称为“模块文件存储目录”。
根据本申请方案,在模块文件存储目录中,所有模块的相关文件可以以平行的方式进行存储,而不需要以目录层级的形式体现出各个模块在项目依赖链中所处的位置。例如,项目a依赖模块b和模块c,而模块b和模块c又都依赖了模块d,那么可以在模块文件存储目录下分别建立b、c、d的子目录以存储对应模块的文件,无需考虑b-d、c-d的依赖关系,这样也就避免了同一模块被多次依赖所导致的文件重复安装问题。
另外,在依赖库目录(包括项目的依赖库目录或模块的依赖库目录)中,不需要存储依赖模块的相关文件,而是以软链接的形式替代。软链接又称符号链接,是以文件的形式存在,该文件本身没有实际数据,而是指向其他的文件或目录,也就是说,通过访问软链接,可以间接达到访问其所指对象的目的。在本申请中,假设存在依赖关系:x依赖y(其中x可以是项目也可以是模块,y被依赖模块),则针对任一被依赖的模块y,在其父依赖对象x的依赖库目录中,建立一个软链接,并使该软链接指向y在模块文件存储目录中的安装路径。这样,在项目实际运行时,原本需要从x的依赖库目录中读取的y模块文件,通过软链接的方式,被跳转到从模块文件存储目录中y模块安装路径进行读取,在不需要影响原项目文件读取逻辑的情况下,仍然可以保证模块文件实际存储路径变更后的正确读取。而且相对于项目文件而言,软链接的空间占用基本可以忽略不计,因此也不会导致项目体积的增加。
仍以前面的例子进行说明,假设项目a依赖了模块b和模块c,而模块b和模块c又都依赖了模块d。那么,应用本申请方案,在安装结束之后,项目的目录结构示意如下:
Figure BDA0000992153830000051
可以看出,在项目a的安装目录下,包括了依赖库目录modules以及模块文件存储目录.tmp。其中.tmp中以平行方式的建立了b、c、d子目录,用于分别存储三个模块的相关文件。在项目a的依赖库目录modules下,分别建立了链接到b模块安装路径(../.tmp/b)的软链接以及链接到c模块安装路径(../.tmp/c)的软链接,表示项目a依赖模块b和模块c;在模块b和模块c的依赖库目录modules下,也分别建立了链接到d模块安装路径(../.tmp/d)的软链接,表示模块b和模块c依赖了模块d。与现有方案相比,仅需安装一次模块d的相关文件,从而可以有效提升安装效率,减小项目文件体积。
需要说明的是,在建立软链接时,可以采用绝对路径的形式,也可以采用相对路径的形式,本申请并不需要进行限定。
以上介绍了针对项目中单个模块的安装方案,在整个项目的安装过程中,一般需要逐个对模块进行安装。在有些情况下,在安装的初始阶段,只能获得项目自身的依赖模块列表,此时只能了解到项目的1级依赖模块包括哪些,而对于项目的2、3、4…级依赖模块,则需要在安装其父依赖模块的过程中,才能了解到需要进行安装,根据上述情况,在整个项目的依赖模块安装过程中,可以采用深度优先的方式,对项目模块依赖链中涉及的所有模块进行安装。也就是说,在安装某个项目依赖模块(1级依赖模块)的过程中,如果进一步发现该模块还存在子依赖模块(2级依赖模块),则对其子依赖模块(2级依赖模块)进行安装;类似地,在对2级依赖模块的安装过程中,如果进一步发现该模块还存在子依赖模块(3级依赖模块),则进一步对子依赖模块(3级依赖模块)进行安装……如此反复,直到所有的模块都安装完毕。这里对“模块安装完毕”应理解为:该模块本身的相关文件、以及该模块的所有依赖模块的相关文件安装完毕。
在安装过程中,有可能会出现同一模块被多次依赖的情况,为了避免重复安装操作,对于任意一个待安装的模块,可以在对其进行安装之前,检查所述文件存储目录中是否已存在该模块的内容文件,如果是则停止对当前模块内容文件的安装操作,否则继续安装当前模块的内容文件。
例如,根据上面的实施例,其模块安装顺序可以为b→d→c,其中b是第一个被安装的1级依赖模块,在安装模块b的过程中,发现模块b依赖模块d,因此进一步安装模块d;模块b安装完成后,开始安装第二个1级依赖模块c,在安装模块c的过程中,发现模块c依赖模块d,但是通过检查发现.tmp目录下已经存在模块d的相关文件,因此可以停止复制模块d的相关文件,只需在模块c的modules目录下建立链接到d模块安装路径(../.tmp/d)的软链接即可完成对模块c的安装。
另外,针对任一模块,其安装顺序可以包括两种:
1)先将该模块的内容文件复制到模块文件存储目录,然后根据该模块在所述模块文件存储目录中的安装路径,在该模块的父依赖对象的依赖库目录中建立软链接。
2)根据预设的安装路径规则,先在该模块的父依赖对象的依赖库目录中建立软链接,然后将该模块的内容文件复制到模块文件存储目录。
其中第2种方式的实现前提是:软链接允许指向不存在的对象,也就是所谓的“断链”。这样,如果对所有模块的安装路径规则具有统一定义,例如:预先规定将各个模块分别安装在.tmp目录下的“模块名”子目录。也就是说,只要获得了依赖模块的名称,就可以在复制模块文件之前,先建立指向该模块的软链接,后续模块文件复制完成后,“断链”情况也就自然消失了。当然,上述两种安装方式,最终达到相同的效果是相同的,本领域技术人员可以按照实际需求灵活选择。另外,在实际应用中,除以上两个可交换顺序的安装步骤之外,还允许在其中添加其他步骤,本申请并不需要对此进行限定。
相应于上述方法实施例,本申请还提供一种JavaScript模块安装装置,参见图2所示,该装置可以包括:
存储目录创建单元110,用于为待安装项目建立模块文件存储目录;
安装执行单元120,用于针对待安装项目模块依赖链中涉及的每个模块,执行以下安装操作:
将该模块的内容文件复制到模块文件存储目录;
以及
在该模块的父依赖对象的依赖库目录中,建立软链接,令该软链接指向该模块在模块文件存储目录中的安装路径。
在本申请的一种具体实施方式中,安装执行单元120可以具体用于:
在向模块文件存储目录复制模块的内容文件之前,检查文件存储目录中是否已存在该模块的内容文件,如果是则停止对当前模块内容文件的复制操作,否则继续复制当前模块的内容文件。
在本申请的一种具体实施方式中,安装执行单元120可以具体用于:
以深度优先的方式,依次对针对待安装项目模块依赖链中涉及的模块进行安装。
在本申请的一种具体实施方式中,安装执行单元120具体可以按照以下顺序安装依赖模块:
将模块的内容文件复制到模块文件存储目录;
根据该模块在模块文件存储目录中的安装路径,在该模块的父依赖对象的依赖库目录中建立软链接。
在本申请的一种具体实施方式中,安装执行单元120具体可以按照以下顺序安装依赖模块:
根据预设的安装路径规则,在该模块的父依赖对象的依赖库目录中建立软链接;
将模块的内容文件复制到模块文件存储目录。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本申请方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种JavaScript模块安装方法,其特征在于,该方法包括:
为待安装项目建立模块文件存储目录,所述模块文件存储目录用于统一存储各个依赖模块的相关文件;
针对待安装项目模块依赖链中涉及的每个模块,执行以下安装操作:
将该模块的内容文件复制到所述模块文件存储目录;
以及
在该模块的父依赖对象的依赖库目录中,建立软链接,令该软链接指向该模块在所述模块文件存储目录中的安装路径。
2.根据权利要求1所述的方法,其特征在于,所述将该模块的内容文件复制到所述模块文件存储目录,包括:
在向所述模块文件存储目录复制模块的内容文件之前,检查所述文件存储目录中是否已存在该模块的内容文件,如果是则停止对当前模块内容文件的复制操作,否则继续复制当前模块的内容文件。
3.根据权利要求1所述的方法,其特征在于,针对待安装项目模块依赖链中涉及的所有模块,其安装顺序包括:
以深度优先的方式,依次对针对待安装项目模块依赖链中涉及的模块进行安装。
4.根据权利要求1所述的方法,其特征在于,针对任一模块,其安装顺序包括:
将该模块的内容文件复制到所述模块文件存储目录;
根据该模块在所述模块文件存储目录中的安装路径,在该模块的父依赖对象的依赖库目录中建立软链接。
5.根据权利要求1所述的方法,其特征在于,针对任一模块,其安装顺序包括:
根据预设的安装路径规则,在该模块的父依赖对象的依赖库目录中建立软链接;
将该模块的内容文件复制到所述模块文件存储目录。
6.一种JavaScript模块安装装置,其特征在于,该装置包括:
存储目录创建单元,用于为待安装项目建立模块文件存储目录,所述模块文件存储目录用于统一存储各个依赖模块的相关文件;
安装执行单元,用于针对待安装项目模块依赖链中涉及的每个模块,执行以下安装操作:
将该模块的内容文件复制到所述模块文件存储目录;
以及
在该模块的父依赖对象的依赖库目录中,建立软链接,令该软链接指向该模块在所述模块文件存储目录中的安装路径。
7.根据权利要求6所述的装置,其特征在于,所述安装执行单元,具体用于:
在向所述模块文件存储目录复制模块的内容文件之前,检查所述文件存储目录中是否已存在该模块的内容文件,如果是则停止对当前模块内容文件的复制操作,否则继续复制当前模块的内容文件。
8.根据权利要求6所述的装置,其特征在于,所述安装执行单元,具体用于:
以深度优先的方式,依次对针对待安装项目模块依赖链中涉及的模块进行安装。
9.根据权利要求6所述的装置,其特征在于,所述安装执行单元,具体用于按照以下顺序安装依赖模块:
将该模块的内容文件复制到所述模块文件存储目录;
根据该模块在所述模块文件存储目录中的安装路径,在该模块的父依赖对象的依赖库目录中建立软链接。
10.根据权利要求6所述的装置,其特征在于,所述安装执行单元,具体用于按照以下顺序安装依赖模块:
根据预设的安装路径规则,在该模块的父依赖对象的依赖库目录中建立软链接;
将该模块的内容文件复制到所述模块文件存储目录。
CN201610326939.6A 2016-05-17 2016-05-17 一种JavaScript模块安装方法及装置 Active CN107391161B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610326939.6A CN107391161B (zh) 2016-05-17 2016-05-17 一种JavaScript模块安装方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610326939.6A CN107391161B (zh) 2016-05-17 2016-05-17 一种JavaScript模块安装方法及装置

Publications (2)

Publication Number Publication Date
CN107391161A CN107391161A (zh) 2017-11-24
CN107391161B true CN107391161B (zh) 2020-07-07

Family

ID=60337801

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610326939.6A Active CN107391161B (zh) 2016-05-17 2016-05-17 一种JavaScript模块安装方法及装置

Country Status (1)

Country Link
CN (1) CN107391161B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109697063A (zh) * 2018-12-29 2019-04-30 深圳点猫科技有限公司 Python库管理列表中的第三方库的安装方法及装置
CN110096280A (zh) * 2019-03-18 2019-08-06 中国平安人寿保险股份有限公司 代码工程的创建方法、装置、计算机装置及存储介质
CN112286543B (zh) * 2020-11-06 2021-11-02 广州锦行网络科技有限公司 一种应用服务部署方法及装置
CN113590175A (zh) * 2021-06-30 2021-11-02 支付宝(杭州)信息技术有限公司 依赖目录的创建方法、装置及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012058654A2 (en) * 2010-10-29 2012-05-03 Overture Networks, Inc. Startup/shutdown sequence
CN102662705A (zh) * 2012-03-31 2012-09-12 中国工商银行股份有限公司 一种对计算机集群的系统环境进行升级的系统及方法
CN103324504A (zh) * 2013-05-29 2013-09-25 哈尔滨工业大学 一种基于lxi多功能仪器的m模块驱动构架自动配置方法
CN104536802A (zh) * 2014-12-19 2015-04-22 中兴通讯股份有限公司 一种实现应用调用的方法及虚拟机
CN104809015A (zh) * 2015-05-05 2015-07-29 浪潮电子信息产业股份有限公司 一种基于Linux系统下的自动部署Oracle rac环境的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9747297B2 (en) * 2014-09-23 2017-08-29 Amazon Technologies, Inc. Synchronization of shared folders and files

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012058654A2 (en) * 2010-10-29 2012-05-03 Overture Networks, Inc. Startup/shutdown sequence
CN102662705A (zh) * 2012-03-31 2012-09-12 中国工商银行股份有限公司 一种对计算机集群的系统环境进行升级的系统及方法
CN103324504A (zh) * 2013-05-29 2013-09-25 哈尔滨工业大学 一种基于lxi多功能仪器的m模块驱动构架自动配置方法
CN104536802A (zh) * 2014-12-19 2015-04-22 中兴通讯股份有限公司 一种实现应用调用的方法及虚拟机
CN104809015A (zh) * 2015-05-05 2015-07-29 浪潮电子信息产业股份有限公司 一种基于Linux系统下的自动部署Oracle rac环境的方法

Also Published As

Publication number Publication date
CN107391161A (zh) 2017-11-24

Similar Documents

Publication Publication Date Title
CN107391161B (zh) 一种JavaScript模块安装方法及装置
US9715441B2 (en) Risk-based test coverage and prioritization
JP6616774B2 (ja) アンチマルウェア型モバイルコンテンツデータ管理装置及び方法
CN106294113B (zh) 一种基于可编程式测试服务的创建方法及装置
EP2080112A1 (en) Thin client software development environment
US9256519B2 (en) Using linked data to determine package quality
EP2805251A1 (en) Managing script file dependencies and load times
US11922146B2 (en) Systems and method for creating enterprise software
CN109597626A (zh) 一种组件部署方法和装置
US10599755B2 (en) System and method for automatically inserting correct escaping functions for field references in a multi-tenant computing environment
CN109032687A (zh) 屏蔽sdk危险调用的方法及装置
CN112087370A (zh) 发布GitHub Issues的方法、系统、电子设备和计算机可读存储介质
CN108197020A (zh) 插件校验方法、电子设备及计算机存储介质
US10680901B2 (en) Configuration management in a multisystem environment
CN103500099A (zh) 一种通过扩展点和扩展实现软件快速二次开发的方法
CN107861751A (zh) 配置文件的修改方法及装置
US9361210B2 (en) Capturing domain validations and domain element initializations
US11487641B1 (en) Micro services recommendation system for identifying code areas at risk
CN105373384B (zh) 一种软件开发方法和装置
CN116302328A (zh) 智能合约数据处理方法和系统
CN111428209B (zh) 一种应用程序的混淆方法、装置及存储介质
CN110716746B (zh) 将rn样式代码转换为小程序样式代码的方法及装置
CN112131509B (zh) 多入口页面复用方法、装置、计算机设备及可读存储介质
CN117742775A (zh) 兼容浏览器路由History和Hash模式的Webpack打包方法
CN112051999A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1247297

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200921

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200921

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.