一种web跨项目异步模块共享方法及装置制造方法及图纸

技术编号:37975790 阅读:6 留言:0更新日期:2023-06-30 09:51
本申请涉及一种web跨项目异步模块共享方法、装置、设备和介质,该方法包括:将需要共享的模块分成共享模块消费方和共享模块提供方;共享模块提供方抛出模块供共享模块消费方使用;判断共享模块提供方是否有消费模块的需求;若判断结果为所述共享模块提供方有消费模块的需求,共享模块提供方消费自己抛出的模块;其中,共享模块消费方和共享模块提供方通过全局变量串联。通过本申请可以处理js、css、图片、json等多种类型文件,可以在任意文件的任意位置对模块进行抛出,可以是多文件抛出一个模块,也可以是一个文件抛出多个模块,另外,本申请侵入小,对现有项目只需要抛出模块并得到模块对应的文件地址。到模块对应的文件地址。到模块对应的文件地址。

【技术实现步骤摘要】
一种web跨项目异步模块共享方法及装置


[0001]本申请涉及web
,特别是涉及一种web跨项目异步模块共享方法、装置、设备和介质。

技术介绍

[0002]在前端领域,项目开发和打包过程中的模块加载、管理方案经过多年的发展,已经非常成熟。开发者可以使用CommonJs,CMD,ES Module等标准,非常方便、简单得完成项目模块得加载、管理。然而在项目运行中动态进行模块共享、管理方面,目前并没有非常理想的标准或实现。业界的普遍方案是将需要共享的模块抽象成一个单独的模块,然后进行异步动态加载,但这种方法比较适用于一些业务无关的基础模块,如果将与业务强相关的模块抽象成单独的模块,会面临维护成本升高,重复加载等问题。同时各种打包工具之间也存在一定的差异,想要同时加载不同打包工具打包出来的库,存在一定的兼容性问题,需要单独处理。

技术实现思路

[0003]基于上述问题,本申请提供一种web跨项目异步模块共享方法、装置、设备和介质。
[0004]第一方面,本申请实施例提供一种web跨项目异步模块共享方法,包括:
[0005]将需要共享的模块分成共享模块消费方和共享模块提供方;
[0006]共享模块提供方抛出模块供共享模块消费方使用;
[0007]判断共享模块提供方是否有消费模块的需求;
[0008]若判断结果为所述共享模块提供方有消费模块的需求,共享模块提供方消费自己抛出的模块;
[0009]其中,共享模块消费方和共享模块提供方通过全局变量串联。
>[0010]进一步地,上述一种web跨项目异步模块共享方法,还包括:
[0011]共享模块消费方消费共享模块提供方抛出的模块;
[0012]判断共享模块消费方是否有提供模块的需求;
[0013]若判断结果为共享模块消费方有提供模块的需求,共享模块消费方抛出另外的共享模块。
[0014]进一步地,上述一种web跨项目异步模块共享方法中,共享模块提供方抛出模块的步骤包括:
[0015]导出待抛出模块;
[0016]判断待抛出模块是否在缓存内;
[0017]若判断结果为待抛出模块在缓存内,共享模块提供方抛出待抛出模块,若判断结果为待抛出模块不在缓存内,对待抛出模块进行注册、导出、命名空间后抛出。
[0018]进一步地,上述一种web跨项目异步模块共享方法中,共享模块消费方消费模块的步骤包括:
[0019]导入待消费模块;
[0020]判断待消费模块是否是匿名模块;
[0021]若判断结果为待消费模块是匿名模块,对待消费模块进行加载、导出,若判断结果为待消费模块不是匿名模块,通过注册解析器、解析器处理后对待消费模块进行加载、导出。
[0022]进一步地,上述一种web跨项目异步模块共享方法,还包括:
[0023]判断共享模块消费方有否有依赖;
[0024]若判断结果为共享模块消费方有依赖,共享模块使用共享模块消费方的依赖,若判断结果为共享模块消费方没有依赖,调用共享模块提供方的依赖。
[0025]进一步地,上述一种web跨项目异步模块共享方法,还包括:
[0026]共享模块提供方抛出override方法,共享模块消费方调用共享模块提供方的override方法,写入共享依赖;
[0027]共享模块消费方获取模块时,判断override内有没有当前模块;
[0028]若判断结果为override内有所述当前模块,从override内获取模块,若判断结果为override内没有所述当前模块,从当前模块对应的索引内获取。
[0029]进一步地,上述一种web跨项目异步模块共享方法,还包括:
[0030]共享模块提供方通过export get方法获取共享模块提供方的子模块;
[0031]共享模块提供方的子模块通过Promise以按需的方式引入。
[0032]第二方面,本申请实施例还提供一种web跨项目异步模块共享装置,包括:
[0033]分角色模块:用于将需要共享的模块分成共享模块消费方和共享模块提供方;
[0034]抛出模块:用于共享模块提供方抛出模块供共享模块消费方使用;
[0035]判断模块:用于判断共享模块提供方是否有消费模块的需求;
[0036]消费模块:用于若判断结果为共享模块提供方有消费模块的需求,共享模块提供方消费自己抛出的模块;
[0037]其中,共享模块消费方和共享模块提供方通过全局变量串联。
[0038]第三方面,本专利技术实施例还提供了一种电子设备,包括:处理器和存储器;
[0039]所述处理器通过调用所述存储器存储的程序或指令,用于执行如上任一项所述的一种web跨项目异步模块共享方法。
[0040]第四方面,本专利技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行如上任一项所述的一种web跨项目异步模块共享方法。
[0041]本申请实施例的优点在于:本申请可以处理js、css、图片、json等多种类型文件,可以在任意文件的任意位置对模块进行抛出,可以是多文件抛出一个模块,也可以是一个文件抛出多个模块。侵入小,对现有项目只需要抛出模块并得到模块对应的文件地址。采用依赖前置的方式,可提前注册模块,方便进行模块的同步加载,加快加载速度。模块加载过程有完整的生命周期,可以进行生命周期的自我管理与外部干预,即提高了易用性,也提供了自定义的能力。
附图说明
[0042]为了更清楚地说明本申请实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0043]图1为本申请实施例提供的一种web跨项目异步模块共享方法示意图一;
[0044]图2为本申请实施例提供的一种web跨项目异步模块共享方法示意图二;
[0045]图3为本申请实施例提供的一种web跨项目异步模块共享方法示意图三;
[0046]图4为本申请实施例提供的一种web跨项目异步模块共享方法示意图四;
[0047]图5为本申请实施例提供的一种web跨项目异步模块共享方法示意图五;
[0048]图6为本申请实施例提供的一种web跨项目异步模块共享方法示意图六;
[0049]图7为本申请实施例提供的一种web跨项目异步模块共享装置示意图;
[0050]图8是本公开实施例提供的一种电子设备的示意性框图。
具体实施方式
[0051]为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种web跨项目异步模块共享方法,其特征在于,包括:将需要共享的模块分成共享模块消费方和共享模块提供方;所述共享模块提供方抛出模块供所述共享模块消费方使用;判断所述共享模块提供方是否有消费模块的需求;若判断结果为所述共享模块提供方有消费模块的需求,所述共享模块提供方消费自己抛出的模块;其中,所述共享模块消费方和所述共享模块提供方通过全局变量串联。2.根据权利要求1所述的一种web跨项目异步模块共享方法,其特征在于,所述方法还包括:所述共享模块消费方消费所述共享模块提供方抛出的模块;判断所述共享模块消费方是否有提供模块的需求;若判断结果为所述共享模块消费方有提供模块的需求,所述共享模块消费方抛出另外的共享模块。3.根据权利要求1所述的一种web跨项目异步模块共享方法,其特征在于,所述共享模块提供方抛出模块的步骤包括:导出待抛出模块;判断所述待抛出模块是否在缓存内;若判断结果为所述待抛出模块在缓存内,所述共享模块提供方抛出所述待抛出模块,若判断结果为所述待抛出模块不在缓存内,对所述待抛出模块进行注册、导出、命名空间后抛出。4.根据权利要求1所述的一种web跨项目异步模块共享方法,其特征在于,所述共享模块消费方消费模块的步骤包括:导入待消费模块;判断所述待消费模块是否是匿名模块;若判断结果为所述待消费模块是所述匿名模块,对所述待消费模块进行加载、导出,若判断结果为所述待消费模块不是所述匿名模块,通过注册解析器、解析器处理后对所述待消费模块进行加载、导出。5.根据权利要求1所述的一种web跨项目异步模块共享方法,其特征在于,所述方法还包括:判断所述共享模块消费方有否有依赖;若判断结果为所述共享模块消费方有依赖,共享模块使用所述共享模块消费方的依赖,若判断结果为所述...

【专利技术属性】
技术研发人员:俞飞
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1