CN110297647A - 一种前端工程更新npm包的方法及终端 - Google Patents

一种前端工程更新npm包的方法及终端 Download PDF

Info

Publication number
CN110297647A
CN110297647A CN201910454344.2A CN201910454344A CN110297647A CN 110297647 A CN110297647 A CN 110297647A CN 201910454344 A CN201910454344 A CN 201910454344A CN 110297647 A CN110297647 A CN 110297647A
Authority
CN
China
Prior art keywords
packet
updated
name
npm
file
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.)
Granted
Application number
CN201910454344.2A
Other languages
English (en)
Other versions
CN110297647B (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.)
Fujian Tianquan Educational Technology Ltd
Original Assignee
Fujian Tianquan Educational Technology 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 Fujian Tianquan Educational Technology Ltd filed Critical Fujian Tianquan Educational Technology Ltd
Priority to CN201910454344.2A priority Critical patent/CN110297647B/zh
Publication of CN110297647A publication Critical patent/CN110297647A/zh
Application granted granted Critical
Publication of CN110297647B publication Critical patent/CN110297647B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

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 Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种前端工程更新npm包的方法及终端,通过获取指定域名,并根据指定域名获取指定域名下的待更新npm包包名,根据待更新包包名,更新待更新包,能够更新指定域的npm包,而不会像现有技术中只能更新所有的npm包,提高了npm包更新的灵活性。

Description

一种前端工程更新npm包的方法及终端
技术领域
本发明涉及软件设计领域,尤其涉及一种前端工程更新npm包的方法及终端。
背景技术
在现代前端工程中,通过npm进行工程管理已经是非常普遍的现象。为了更好的复用代码,每个团队都会制作自己的npm包,并且将npm包发布到指定的域中,比如A团队会将自己团队的包发布到域:@teamA,B团队会将自己团队的包发布到域:@teamB。
npm默认提供了一个npm包更新工具(npm update),这个包更新工具会将当前工程所有的包进行更新,但是有的时候,团队只希望更新某个域下的包,比如只更新@team A这个域下的所有包,而保持其他包不变。然而,现有的更新方法并无法实现。
发明内容
本发明所要解决的技术问题是:提供一种前端工程更新npm包的方法及终端,能够更新指定域的npm包,提高了npm包更新的灵活性。
为了解决上述技术问题,本发明采用的一种技术方案为:
一种前端工程更新npm包的方法,包括步骤:
S1、获取指定域名;
S2、根据所述指定域名,获取所述指定域名下的待更新npm包包名;
S3、根据所述待更新的npm包包名,更新所述待更新包。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种前端工程更新npm包的终端,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1、获取指定域名;
S2、根据所述指定域名,获取所述指定域名下的待更新npm包包名;
S3、根据所述待更新的npm包包名,更新所述待更新包。
本发明的有益效果在于:通过获取指定域名,并根据指定域名获取指定域名下的待更新npm包包名,根据待更新包包名,更新待更新包,能够更新指定域的npm包,而不会像现有技术中只能更新所有的npm包,提高了npm包更新的灵活性。
附图说明
图1为本发明实施例的一种前端工程更新npm包的方法的步骤流程图;
图2为本发明实施例的一种前端工程更新npm包的终端的结构示意图;
图3为本发明实施例的前端工程的node_modules的目标结构示意图;
标号说明:
1、一种前端工程更新npm包的终端;2、存储器;3、处理器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
名词解释:
JavaScript(js):一种可以被浏览器执行的程序语言;
nodejs:一种让服务端可以执行js的技术,在前端开发中,我们使用nodejs模拟正式的服务端环境;
npm包:js代码编写的解决某个特定功能的库;
npm仓库(包仓库):一个服务器,里面存储了非常多的npm包;
scope(域):把包放到scope中,就好比将文件放到文件夹中,所以scope类似文件夹的概念,用于方便的管理npm仓库中的包;
npm:用于安装、发布、更新、管理npm包的工具;
node_modules文件夹:在前端工程目录结构中,所有下载的npm包,都放在这个文件夹下,其目录结构中,如果一个包没有scope,那么第一层文件夹的名字就是包名;否则第一层文件夹的名称是scope的名称,第二层文件夹的名称才是包名。
请参照图1,一种前端工程更新npm包的方法,包括步骤:
S1、获取指定域名;
S2、根据所述指定域名,获取所述指定域名下的待更新npm包包名;
S3、根据所述待更新的npm包包名,更新所述待更新包。
从上述描述可知,本发明的有益效果在于:通过获取指定域名,并根据指定域名获取指定域名下的待更新npm包包名,根据待更新包包名,更新待更新包,能够更新指定域的npm包,而不会像现有技术中只能更新所有的npm包,提高了npm包更新的灵活性。
进一步的,所述步骤S1包括:
获取外部传入的参数,解析所述传入的参数,判断所述传入的参数是否为空,若否,获取解析得到的指定域名,判断在所述前端工程的预设目录下是否存在与所述指定域名匹配的文件夹,若是,则执行步骤S2,否则,直接退出。
由上述描述可知,通过参数的传入实现对指定域名的提取,方便快捷,并且如果提取不到域名,则程序直接退出,在无法运行的情况下直接退出程序,避免无谓的资源消耗,提高了资源的有效利用率。
进一步的,所述步骤S2包括:
根据所述指定域名,遍历所述指定域名下的第一层文件夹的文件名,得到待更新文件夹列表;
遍历所述待更新文件夹列表中的待更新文件夹,读取每一个待更新文件夹下的.json文件,解析所述.json文件,得到name属性;
根据得到的每一个待更新文件夹对应的name属性确定所述指定域名下的待更新npm包包名。
由上述描述可知,在前端工程目录结构中,如果一个包有对应的域scope,则在前端工程目录结构下的node_modules文件夹下的第一层文件夹的名称就是scope的名称,第二层文件夹下的名称就是包名,而包名可以通过解析第二层文件夹下的.json文件获取,所以通过对指定域名下的第一层文件夹中每一个文件夹下的.json文件的解析,能够准确快速自动地得到待更新npm包的包名。
进一步的,所述步骤S3包括:
将所述待更新的npm包包名按照预设规则组合成所述待更新包对应的包名序列,采用npm update+包名序列的命令形式更新所述待更新包。
由上述描述可知,通过对所有待更新的npm包的包名进行预设规则的组合,形成包名序列,然后通过npm update+包名序列的命令形式就能够实现一次性对指定域下的所有npm包进行更新,简便快捷。
进一步的,所述步骤S3还包括:
创建子进程,让所述子进程执行待更新包的更新命令。
由上述描述可知,通过另外创建子进程执行待更新包的更新命令,能够进一步提高更新速度,避免与常规包更新产生冲突。
请参照图2,一种前端工程更新npm包的终端,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1、获取指定域名;
S2、根据所述指定域名,获取所述指定域名下的待更新npm包包名;
S3、根据所述待更新的npm包包名,更新所述待更新包。
从上述描述可知,本发明的有益效果在于:通过获取指定域名,并根据指定域名获取指定域名下的待更新npm包包名,根据待更新包包名,更新待更新包,能够更新指定域的npm包,而不会像现有技术中只能更新所有的npm包,提高了npm包更新的灵活性。
进一步的,所述步骤S1包括:
获取外部传入的参数,解析所述传入的参数,判断所述传入的参数是否为空,若否,获取解析得到的指定域名,判断在所述前端工程的预设目录下是否存在与所述指定域名匹配的文件夹,若是,则执行步骤S2,否则,直接退出。
由上述描述可知,通过参数的传入实现对指定域名的提取,方便快捷,并且如果提取不到域名,则程序直接退出,在无法运行的情况下直接退出程序,避免无谓的资源消耗,提高了资源的有效利用率。
进一步的,所述步骤S2包括:
根据所述指定域名,遍历所述指定域名下的第一层文件夹的文件名,得到待更新文件夹列表;
遍历所述待更新文件夹列表中的待更新文件夹,读取每一个待更新文件夹下的.json文件,解析所述.json文件,得到name属性;
根据得到的每一个待更新文件夹对应的name属性确定所述指定域名下的待更新npm包包名。
由上述描述可知,在前端工程目录结构中,如果一个包有对应的域scope,则在前端工程目录结构下的node_modules文件夹下的第一层文件夹的名称就是scope的名称,第二层文件夹下的名称就是包名,而包名可以通过解析第二层文件夹下的.json文件获取,所以通过对指定域名下的第一层文件夹中每一个文件夹下的.json文件的解析,能够准确快速自动地得到待更新npm包的包名。
进一步的,所述步骤S3包括:
将所述待更新的npm包包名按照预设规则组合成所述待更新包对应的包名序列,采用npm update+包名序列的命令形式更新所述待更新包。
由上述描述可知,通过对所有待更新的npm包的包名进行预设规则的组合,形成包名序列,然后通过npm update+包名序列的命令形式就能够实现一次性对指定域下的所有npm包进行更新,简便快捷。
进一步的,所述步骤S3还包括:
创建子进程,让所述子进程执行待更新包的更新命令。
由上述描述可知,通过另外创建子进程执行待更新包的更新命令,能够进一步提高更新速度,避免与常规包更新产生冲突。
实施例一
请参照图1,一种前端工程更新npm包的方法,包括步骤:
S1、获取指定域名;
具体的,获取外部传入的参数,解析所述传入的参数,这个参数表示使用者需要更新的域的名称,例如可以是@teamA;
判断所述传入的参数是否为空,若否,获取解析得到的指定域名,判断在所述前端工程的预设目录下是否存在与所述指定域名匹配的文件夹,若是,则执行步骤S2,否则,直接退出;
其中,所述预设目录指的是node_modules目录,如果指定域名为@teamA,则在node_modules目录遍历,是否该目录下有名称为@teamA的文件夹;
S2、根据所述指定域名,获取所述指定域名下的待更新npm包包名;
具体的,根据所述指定域名,遍历所述指定域名下的第一层文件夹的文件名,得到待更新文件夹列表;
比如,如果指定域名@teamA下的第一层文件夹包括x,b,c,则待更新文件夹列表为:
node_modules/@teamA/x,node_modules/@teamA/b,node_modules/@teamA/c;
遍历所述待更新文件夹列表中的待更新文件夹,读取每一个待更新文件夹下的.json文件,即package.json文件,解析所述.json文件,使用系统自带的json库,对文件内容进行解析,得到name属性;
根据得到的每一个待更新文件夹对应的name属性确定所述指定域名下的待更新npm包包名,name属性即表示其对应的npm包在仓库中的包名;
S3、根据所述待更新的npm包包名,更新所述待更新包;
具体的,将所述待更新的npm包包名按照预设规则组合成所述待更新包对应的包名序列,采用npm update+包名序列的命令形式更新所述待更新包;
优选的,包名序列中不同包的包名之间用一个空格分割,也可以用其他预设符号,比如*、|等;
具体的执行更新命令如下:
npm update@teamA/x@teamA/b@teamA/c;
优选的,另外创建一个新的子进程,让所述新的子进程执行待更新包的更新命令;
其中,可以将上述实现指定域的npm包的更新的步骤用一个js脚本文件scopeupdate.js来实现;
在具体实现指定域的npm包更新时,执行命令:node scopeupdate.js@teamA即可更新@teamA下的所有包;
此外,如果说要更新的npm包没有对应的域,则由于知道要更新的npm包包名,此时直接npm update+待更新的npm包即可实现更新。
将上述实现指定域的npm包更新的方法应用于实际的场景,如图3所示为一个工程的node_modules目录结构,运行程序node scopeupdate.js@teamA,则能够实现对@teamA下的所有npm包的更新;
其具体的运行过程如下:
脚本scopeUpdate解析参数,得到“@teamA”,表示希望更新@teamA这个域下的所有包;
确认存在文件夹node_modules/@teamA,遍历node_modules/@teamA,得到待更新文件夹列表:
node_modules/@teamA/package_1,node_modules/@teamA/package_2;
遍历待更新文件夹列表中的每一个待更新文件夹,读取每一个待更新文件夹下的package.json文件,得到各自对应的包名,假设包名分别为:@teamA/package_1,@teamA/package_2;
新建一个子进程,执行命令:
npm update@teamA/package_1@teamA/package_2
此时子进程就会通过npm更新@teamA下的两个包,而不会更新其他的包。
实施例二
请参照图2,一种前端工程更新npm包的终端1,包括存储器2、处理器3以及存储在所述存储器2上并可在所述处理器3上运行的计算机程序,所述处理器3执行所述计算机程序时实现实施例一中的各个步骤。
综上所述,本发明提供的一种前端工程更新npm包的方法及终端,通过对传入参数的解析,获取指定域名,并通过遍历指定域名下的第一层文件夹的文件名,对第一层文件夹下的.json文件进行解析,获取指定域名下的待更新npm包包名,根据待更新包包名,创建子进程,更新待更新包,能够实现指定域名下的待更新npm包的快捷方便自动的读取并自动快速地更新指定域下的所有包名,能够更新指定域的npm包,而不会像现有技术中只能更新所有的npm包,提高了npm包更新的灵活性。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种前端工程更新npm包的方法,其特征在于,包括步骤:
S1、获取指定域名;
S2、根据所述指定域名,获取所述指定域名下的待更新npm包包名;
S3、根据所述待更新的npm包包名,更新所述待更新包。
2.根据权利要求1所述的一种前端工程更新npm包的方法,其特征在于,所述步骤S1包括:
获取外部传入的参数,解析所述传入的参数,判断所述传入的参数是否为空,若否,获取解析得到的指定域名,判断在所述前端工程的预设目录下是否存在与所述指定域名匹配的文件夹,若是,则执行步骤S2,否则,直接退出。
3.根据权利要求1所述的一种前端工程更新npm包的方法,其特征在于,所述步骤S2包括:
根据所述指定域名,遍历所述指定域名下的第一层文件夹的文件名,得到待更新文件夹列表;
遍历所述待更新文件夹列表中的待更新文件夹,读取每一个待更新文件夹下的.json文件,解析所述.json文件,得到name属性;
根据得到的每一个待更新文件夹对应的name属性确定所述指定域名下的待更新npm包包名。
4.根据权利要求1所述的一种前端工程更新npm包的方法,其特征在于,所述步骤S3包括:
将所述待更新的npm包包名按照预设规则组合成所述待更新包对应的包名序列,采用npm update+包名序列的命令形式更新所述待更新包。
5.根据权利要求1所述的一种前端工程更新npm包的方法,其特征在于,所述步骤S3还包括:
创建子进程,让所述子进程执行待更新包的更新命令。
6.一种前端工程更新npm包的终端,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
S1、获取指定域名;
S2、根据所述指定域名,获取所述指定域名下的待更新npm包包名;
S3、根据所述待更新的npm包包名,更新所述待更新包。
7.根据权利要求6所述的一种前端工程更新npm包的终端,其特征在于,所述步骤S1包括:
获取外部传入的参数,解析所述传入的参数,判断所述传入的参数是否为空,若否,获取解析得到的指定域名,判断在所述前端工程的预设目录下是否存在与所述指定域名匹配的文件夹,若是,则执行步骤S2,否则,直接退出。
8.根据权利要求6所述的一种前端工程更新npm包的终端,其特征在于,所述步骤S2包括:
根据所述指定域名,遍历所述指定域名下的第一层文件夹的文件名,得到待更新文件夹列表;
遍历所述待更新文件夹列表中的待更新文件夹,读取每一个待更新文件夹下的.json文件,解析所述.json文件,得到name属性;
根据得到的每一个待更新文件夹对应的name属性确定所述指定域名下的待更新npm包包名。
9.根据权利要求6所述的一种前端工程更新npm包的终端,其特征在于,所述步骤S3包括:
将所述待更新的npm包包名按照预设规则组合成所述待更新包对应的包名序列,采用npm update+包名序列的命令形式更新所述待更新包。
10.根据权利要求6所述的一种前端工程更新npm包的终端,其特征在于,所述步骤S3还包括:
创建子进程,让所述子进程执行待更新包的更新命令。
CN201910454344.2A 2019-05-29 2019-05-29 一种前端工程更新npm包的方法及终端 Active CN110297647B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910454344.2A CN110297647B (zh) 2019-05-29 2019-05-29 一种前端工程更新npm包的方法及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910454344.2A CN110297647B (zh) 2019-05-29 2019-05-29 一种前端工程更新npm包的方法及终端

Publications (2)

Publication Number Publication Date
CN110297647A true CN110297647A (zh) 2019-10-01
CN110297647B CN110297647B (zh) 2023-12-01

Family

ID=68027364

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910454344.2A Active CN110297647B (zh) 2019-05-29 2019-05-29 一种前端工程更新npm包的方法及终端

Country Status (1)

Country Link
CN (1) CN110297647B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416390A (zh) * 2020-11-11 2021-02-26 北京五八信息技术有限公司 更新npm包的方法、装置、电子设备及可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106843869A (zh) * 2017-01-16 2017-06-13 百融(北京)金融信息服务股份有限公司 一种前端开发工程化系统和方法
CN107329771A (zh) * 2017-05-11 2017-11-07 广东网金控股股份有限公司 一种项目增量更新方法、装置及用户终端
US20180081661A1 (en) * 2016-09-16 2018-03-22 Microsoft Technology Licensing, Llc Optimization for Multi-Project Package Manager
WO2018120429A1 (zh) * 2016-12-28 2018-07-05 平安科技(深圳)有限公司 一种资源更新的方法、终端、计算机可读存储介质及资源更新设备
CN108363564A (zh) * 2018-01-23 2018-08-03 平安普惠企业管理有限公司 多项目组件化实现方法、装置、终端设备及存储介质
CN108733399A (zh) * 2017-04-13 2018-11-02 北京京东尚科信息技术有限公司 动态更新配置数据的方法和装置
CN109298883A (zh) * 2018-08-23 2019-02-01 深圳点猫科技有限公司 一种教育平台下的自动生成组件文件的方法及电子设备
CN109739744A (zh) * 2018-12-05 2019-05-10 北京奇艺世纪科技有限公司 一种测试系统及方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180081661A1 (en) * 2016-09-16 2018-03-22 Microsoft Technology Licensing, Llc Optimization for Multi-Project Package Manager
WO2018120429A1 (zh) * 2016-12-28 2018-07-05 平安科技(深圳)有限公司 一种资源更新的方法、终端、计算机可读存储介质及资源更新设备
CN106843869A (zh) * 2017-01-16 2017-06-13 百融(北京)金融信息服务股份有限公司 一种前端开发工程化系统和方法
CN108733399A (zh) * 2017-04-13 2018-11-02 北京京东尚科信息技术有限公司 动态更新配置数据的方法和装置
CN107329771A (zh) * 2017-05-11 2017-11-07 广东网金控股股份有限公司 一种项目增量更新方法、装置及用户终端
CN108363564A (zh) * 2018-01-23 2018-08-03 平安普惠企业管理有限公司 多项目组件化实现方法、装置、终端设备及存储介质
CN109298883A (zh) * 2018-08-23 2019-02-01 深圳点猫科技有限公司 一种教育平台下的自动生成组件文件的方法及电子设备
CN109739744A (zh) * 2018-12-05 2019-05-10 北京奇艺世纪科技有限公司 一种测试系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈坚;宋安平;: "自动更新系统的设计与实现", no. 08 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416390A (zh) * 2020-11-11 2021-02-26 北京五八信息技术有限公司 更新npm包的方法、装置、电子设备及可读存储介质
CN112416390B (zh) * 2020-11-11 2022-01-04 北京五八信息技术有限公司 更新npm包的方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN110297647B (zh) 2023-12-01

Similar Documents

Publication Publication Date Title
EP3667520A1 (en) Webpage content extraction method and terminal device
CN105094786B (zh) 基于JavaScript定制页面的方法及系统
CN109388766B (zh) 页面加载的方法和装置
EP2916243B1 (en) Method, apparatus, server and system for implementing web application
US20100083098A1 (en) Streaming Information that Describes a Webpage
US20120210243A1 (en) Web co-navigation
CN110674619B (zh) 一种在线文档编辑方法、装置、设备及计算机存储介质
CN113126990B (zh) 一种页面开发方法、装置、设备及存储介质
CN110377360A (zh) webview快速加载的方法、显示终端及计算机可读存储介质
CN110427225A (zh) 一种启动小程序的方法和装置
CN109361948A (zh) 界面管理方法、智能终端及可读存储介质
EP4198773A1 (en) Image processing method and apparatus, and computer readable storage medium
US8595224B2 (en) Smart path finding for file operations
CN110059278A (zh) Web页面配置方法、服务器及计算机可读存储介质
CN104052626A (zh) 配置网元数据的方法、装置和系统
CN110297647A (zh) 一种前端工程更新npm包的方法及终端
CN108345683B (zh) 网页显示方法、装置、终端及存储介质
CN101808218A (zh) 电子节目单内容的获取和更新方法、装置和系统
CN102609518A (zh) 多状态ajax网页内容获取方法及系统
CN104063277A (zh) 一种信息处理方法及电子设备
CN107643892B (zh) 接口处理方法、装置、存储介质和处理器
CN108304169B (zh) 针对html5应用的实现方法、装置和设备
US6182093B1 (en) Management of multimedia information across a plurality of HTML containers
CN110286955A (zh) 应用程序启动的方法、装置及计算机可读存储介质
CN112988255B (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