一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于构建Web项目的方法及装置与流程

2022-06-22 14:06:14 来源:中国专利 TAG:

用于构建web项目的方法及装置
技术领域
1.本公开的实施例涉及计算机技术领域,具体地,涉及用于构建web项目的方法及装置。


背景技术:

2.随着互联网技术的发展,用于web项目的构建工具日新月异。现在国内外有很多的web构建工具,如next.js、nuxt.js、umi.js等。不同的web构建工具可能支持不同的构建工具框架和web框架。现有的构建工具框架包括webpack、vite、rollup等。构建工具框架相当于模块打包器,其可将javascript文件打包在一起,打包后的文件用于在浏览器中使用。现有的web框架包括react、vue、angular等,其用于构建用户界面的javascript库。
3.尽管构建工具框架和web框架可以是开源的,但是在开发人员要基于开源的代码进行进一步的开发的过程中,仍然需要配置相当多的参数。这对开发人员的要求较高,需要开发人员熟悉各种构建工具框架和web框架,并能够针对不同的web项目选择适合的构建工具框架和web框架。


技术实现要素:

4.本文中描述的实施例提供了一种用于构建web项目的方法、装置以及存储有计算机程序的计算机可读存储介质。
5.根据本公开的第一方面,提供了一种用于构建web项目的方法。在该方法中,获取node.js应用程序。在node.js应用程序的package.json文件中和在node_modules目录下的文件名中搜索第一关键字。第一关键字指示web框架。响应于搜索到第一关键字,根据第一关键字确定web项目所使用的web框架的元信息。获取web项目的第一工程信息。响应于获取到第一工程信息,根据web项目所使用的web框架的元信息来将第一工程信息转换成web构建工具所需的配置参数。根据预先设置的配置映射表来设置配置参数的值。基于配置参数来构建web项目。
6.在本公开的一些实施例中,配置映射表包括分别针对多个web框架的多个子配置映射表。每个子配置映射表定义针对相应的web框架的配置参数的推荐值。
7.在本公开的一些实施例中,推荐值包括以下中的一个或多个:经验值、或者从相应web框架的官方开发平台获取的默认配置值。
8.在本公开的一些实施例中,方法还包括:响应于没有获取到第一工程信息,根据web项目所使用的web框架的元信息来将默认的第二工程信息转换成web构建工具所需的配置参数。
9.在本公开的一些实施例中,web构建工具由用户指定,或者根据配置参数的值来确定,或者被配置为默认的web构建工具。
10.在本公开的一些实施例中,将第一工程信息转换成web构建工具所需的配置参数包括:在多个预设的动态引入模块中选择与web构建工具相对应的目标动态引入模块;将第
一工程信息传递到目标动态引入模块;以及将目标动态引入模块中与第一工程信息相对应的字段修改成web构建工具对应的配置参数。
11.在本公开的一些实施例中,方法还包括:响应于根据第一关键字确定的web框架的数量超过一个,显示提示信息。其中,提示信息指示web框架的数量超过一个,并提供对web框架中的一个web框架的选择建议。
12.在本公开的一些实施例中,第一关键字包括一个或多个已知web框架的名称。
13.根据本公开的第二方面,提供了一种用于构建web项目的装置。该装置包括至少一个处理器;以及存储有计算机程序的至少一个存储器。当计算机程序由至少一个处理器执行时,使得装置:获取node.js应用程序;在node.js应用程序的package.json文件中和在node_modules目录下的文件名中搜索第一关键字,第一关键字指示web框架;响应于搜索到第一关键字,根据第一关键字确定web项目所使用的web框架的元信息;获取web项目的第一工程信息;响应于获取到第一工程信息,根据web项目所使用的web框架的元信息来将第一工程信息转换成web构建工具所需的配置参数;根据预先设置的配置映射表来设置配置参数的值;以及基于配置参数来构建web项目。
14.在本公开的一些实施例中,计算机程序在由至少一个处理器执行时使得装置还:响应于没有获取到第一工程信息,根据web项目所使用的web框架的元信息来将默认的第二工程信息转换成web构建工具所需的配置参数。
15.在本公开的一些实施例中,计算机程序在由至少一个处理器执行时使得装置通过以下操作来将第一工程信息转换成web构建工具所需的配置参数:在多个预设的动态引入模块中选择与web构建工具相对应的目标动态引入模块;将第一工程信息传递到目标动态引入模块;以及将目标动态引入模块中与第一工程信息相对应的字段修改成web构建工具对应的配置参数。
16.在本公开的一些实施例中,计算机程序在由至少一个处理器执行时使得装置还:响应于根据第一关键字确定的web框架的数量超过一个,显示提示信息。其中,提示信息指示web框架的数量超过一个,并提供对web框架中的一个web框架的选择建议。
17.根据本公开的第三方面,提供了一种存储有计算机程序的计算机可读存储介质,其中,计算机程序在由处理器执行时实现根据本公开的第一方面所述的方法的步骤。
附图说明
18.为了更清楚地说明本公开的实施例的技术方案,下面将对实施例的附图进行简要说明,应当知道,以下描述的附图仅仅涉及本公开的一些实施例,而非对本公开的限制,其中:
19.图1是根据本公开的实施例的用于构建web项目的方法的示例性流程图;
20.图2是在图1所示的实施例中的将第一工程信息转换成web构建工具所需的配置参数的过程的示例性流程图;以及
21.图3是根据本公开的实施例的用于构建web项目的装置的示意性框图。
22.附图中的元素是示意性的,没有按比例绘制。
具体实施方式
23.为了使本公开的实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本公开的实施例的技术方案进行清楚、完整的描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域技术人员在无需创造性劳动的前提下所获得的所有其它实施例,也都属于本公开保护的范围。
24.除非另外定义,否则在此使用的所有术语(包括技术和科学术语)具有与本公开主题所属领域的技术人员所通常理解的相同含义。进一步将理解的是,诸如在通常使用的词典中定义的那些的术语应解释为具有与说明书上下文和相关技术中它们的含义一致的含义,并且将不以理想化或过于正式的形式来解释,除非在此另外明确定义。诸如“第一”和“第二”的术语仅用于将一个部件(或部件的一部分)与另一个部件(或部件的另一部分)区分开。
25.如上所述,在构建web项目的过程中,需要配置相当多的参数。不同web框架下的同一配置参数的参数名可能不同,并且该配置参数的值可能需要按web框架来设置。不同构建工具框架下的同一配置参数的参数名也可能不同,并且该配置参数的值也可能需要被设置成不同的值。这对开发人员的要求较高。为了减轻开发人员的工作量,并且避免人为失误的发生(例如,开发人员漏配置或错配置了一个或多个配置参数),本公开的实施例提出了一种构建web项目的方法及装置,其无需人工配置各种配置参数,不需要设置配置文件,从而可减轻开发人员的工作量且避免人为失误的发生。
26.图1示出根据本公开的实施例的用于构建web项目的方法的示例性流程图。该web项目可基于已有的开源代码来开发。下面参考图1来描述用于构建web项目的方法100。
27.在该方法100中,在框s102处,获取node.js应用程序。node.js是一个基于chrome v8引擎的javascript(简称js)运行环境。node.js使用了一个事件驱动、非阻塞式i/o的模型,使其轻量又高效。node.js的包管理器npm是全球最大的开源库生态系统。可以将node.js理解成js的解析器,其不但允许js定义各种数据结构,进行各种计算,还允许js使用运行环境提供的内置对象和方法来工作。运行在node.js中的js的用途是操作磁盘文件或搭建超文本传输协议(http)服务器。node.js提供了http的内置对象。node.js可用于web项目元信息获取及工程内组件关系的依赖分析,进而获取web项目使用的web框架的相关信息。
28.在框s104处,在node.js应用程序的package.json文件中和在node_modules目录下的文件名中搜索第一关键字。第一关键字指示web框架。package.json文件是node.js应用程序中的一个文件。在package.json文件中存储有node.js应用程序的工程信息及工程内依赖的组件关系。node_modules目录是一个文件夹,通过包管理器npm集成的项目代码存储在node_modules下。如果web项目使用web框架,则在node_modules下可存在文件名与该web框架的名称相对应的文件。
29.在本公开的一些实施例中,第一关键字可包括一个或多个已知web框架(例如,react、vue、angular等中的一个或多个)的名称。在一个示例中,第一关键字可包括所有web框架的名称。随着技术的发展,第一关键字还可包括未来开发的web框架的名称。
30.应注意,在搜索过程中,针对第一关键字包括的每个web框架的名称单独执行搜索操作,而不是将第一关键字包括的所有web框架的名称联合在一起执行搜索操作。在一个示
例中,可在package.json文件中和在node_modules目录下的文件名中分别搜索以下第一关键字:“react”、“vue”、和“angular”等。
31.在框s106处,确定是否搜索到第一关键字。如果没有搜索到第一关键字(在框s106处为“否”),则可能该web项目不使用web框架,因此无需为web框架做适应性配置。过程进行到框s108,直接构建web项目。
32.如果搜索到第一关键字(在框s106处为“是”),则在框s110处根据第一关键字确定web项目所使用的web框架的元信息。web框架的元信息例如是名称(name)、版本(version)等。在本公开的一些实施例中,某个web项目可能是基于旧的web项目进一步开发的。由于该web项目中的文件繁多或者开发人员工作交接不清楚,可能出现接手该web项目的开发人员向该web项目加入的web框架与旧的web项目使用的web框架不一致的情况。也就是说,可能出现一个web项目里面包括了两个或两个以上的web框架的情况。如果根据第一关键字确定的web框架的数量超过一个,则显示提示信息。其中,提示信息指示web框架的数量超过一个,并提供对web框架中的一个web框架的选择建议。在本公开的一些实施例中,可针对每个web框架设置一个优先级。性能或者表现越好的web框架的优先级越高。每个web框架的优先级还可随着技术的发展而重新调整。可根据上述优先级来从根据第一关键字确定的所有web框架中选出一个优先级最高的web框架,并在提示信息中建议选择该优先级最高的web框架。在一个示例中,假设在package.json文件中和/或在node_modules目录下的文件名中搜索到第一关键字“react”和“vue”二者,并且其中react的性能比vue更好。那么可显示提示信息,例如:“当前存在react和vue两个web框架,建议选择react”。提示信息的具体格式可不限于上述示例。
33.在框s112处,获取web项目的第一工程信息。第一工程信息用于描述web项目的必要信息,例如web项目的入口、出口等信息。第一工程信息是由开发人员主动定义的。在一个示例中,第一工程信息可存储在工程清单中。可替代的,第一工程信息也可不以工程清单的形式存储。
34.在一些情况下,web项目中可能不包括第一工程信息。因此,在框s114处,确定是否获取到第一工程信息。如果获取到第一工程信息(在框s114处为“是”),则在框s116处根据web项目所使用的web框架的元信息来将第一工程信息转换成web构建工具所需的配置参数。在本公开的一些实施例中,web构建工具可由当前web项目的开发人员直接指定。可替代地,web构建工具可根据配置参数的值来确定。在配置参数包含构建器类型(bundletype)字段的情况下,可根据该字段的值来确定web构建工具。例如,在bundletype为webpack的情况下,web构建工具被确定为webpack。在bundletype为vite的情况下,web构建工具被确定为vite。在配置参数不包含构建器类型(bundletype)字段的情况下,web构建工具可被配置为默认的web构建工具。该默认的web构建工具可根据经验值来预先设定。
35.图2示出将第一工程信息转换成web构建工具所需的配置参数的过程的示例性流程图。
36.在框s202处,在多个预设的动态引入模块中选择与web构建工具相对应的目标动态引入模块。该多个预设的动态引入模块分别对应不同的web构建工具。换句话说,可使用的多个web构建工具中的每个web构建工具都关联了一个预设的动态引入模块。每个动态引入模块都是一个npm类型的独立模块。在web构建工具被确定之后,可从该多个预设的动态
引入模块中选择与所确定的web构建工具相对应的动态引入模块(在上下文中被称为“目标动态引入模块”)。
37.在框s204处,将第一工程信息传递到目标动态引入模块。在一个示例中,可将第一工程信息作为参数传递到目标动态引入模块。
38.在框s206处,将目标动态引入模块中与第一工程信息相对应的字段修改成web构建工具对应的配置参数。在目标动态引入模块内部可设置有多个配置参数。可通过预先建立的第一工程信息与配置参数的第一映射表(可针对不同web框架的不同版本来建立第一映射表)来查询哪些配置参数对应第一工程信息。然后逐个字段(一个配置参数也可被理解成一个字段)地将第一工程信息修改为对应的web构建工具所识别的配置参数名称。例如,在web构建工具是webpack的情况下,第一工程信息“入口”可被修改为webpack中的“entry”。在web构建工具是vite的情况下,第一工程信息“入口”可被修改为vite中的“root”。
39.在框s118处,根据预先设置的配置映射表来设置配置参数的值。在本公开的一些实施例中,配置映射表包括分别针对多个web框架的多个子配置映射表。该多个子配置映射表可存储在预先确定的存储空间中,并且对于开发人员是透明的(不可见的)。每个子配置映射表定义针对相应的web框架的配置参数的推荐值。例如,第一子配置映射表可定义在web框架是react的情况下针对各个配置参数的推荐值。第二子配置映射表可定义在web框架是vue的情况下针对各个配置参数的推荐值。第三子配置映射表可定义在web框架是angular的情况下针对各个配置参数的推荐值。在本公开的一些实施例中,推荐值可包括以下中的一个或多个:(例如,来自开发人员的)经验值、或者从相应web框架的官方开发平台获取的默认配置值。从相应web框架的官方开发平台获取的默认配置值可由人工获取,也可以通过爬虫技术从该官方开发平台自动爬取。
40.在框s120处,基于配置参数来构建web项目。在针对所确定的web构建工具和web框架自动设置好配置参数之后,无需人工编写配置文件就可以构建web项目。
41.回到框s114,在开发人员经验不足的情况下,可能没有定义第一工程信息。如果没有获取到第一工程信息(在框s114处为“否”),则在框s122处根据web项目所使用的web框架的元信息来将默认的第二工程信息转换成web构建工具所需的配置参数。第二工程信息可以是根据经验值确定的web项目必须配置的默认工程信息。将默认的第二工程信息转换成web构建工具所需的配置参数的过程可与将第一工程信息转换成web构建工具所需的配置参数的过程类似,在此不再赘述。
42.根据本公开的实施例的用于构建web项目的方法无需人工编写配置文件就可以自动构建web项目,可避免由于人为失误或者经验不足而构建失败的问题。
43.图3示出根据本公开的实施例的用于构建web项目的装置300的示意性框图。如图3所示,该装置300可包括处理器310和存储有计算机程序的存储器320。当计算机程序由处理器310执行时,使得装置300可执行如图1所示的方法100的步骤。在一个示例中,装置300可以是计算机设备或云计算节点。装置300可获取node.js应用程序。装置300可在node.js应用程序的package.json文件中和在node_modules目录下的文件名中搜索第一关键字。第一关键字指示web框架。响应于搜索到第一关键字,装置300可根据第一关键字确定web项目所使用的web框架的元信息。装置300可获取web项目的第一工程信息。响应于获取到第一工程
信息,装置300可根据web项目所使用的web框架的元信息来将第一工程信息转换成web构建工具所需的配置参数。装置300可根据预先设置的配置映射表来设置配置参数的值。装置300可基于配置参数来构建web项目。
44.在本公开的一些实施例中,响应于没有获取到第一工程信息,装置300可根据web项目所使用的web框架的元信息来将默认的第二工程信息转换成web构建工具所需的配置参数。
45.在本公开的一些实施例中,装置300可在多个预设的动态引入模块中选择与web构建工具相对应的目标动态引入模块。装置300可将第一工程信息传递到目标动态引入模块。装置300可将目标动态引入模块中与第一工程信息相对应的字段修改成web构建工具对应的配置参数。
46.在本公开的一些实施例中,响应于根据第一关键字确定的web框架的数量超过一个,装置300可显示提示信息。其中,提示信息指示web框架的数量超过一个,并提供对web框架中的一个web框架的选择建议。
47.在本公开的实施例中,处理器310可以是例如中央处理单元(cpu)、微处理器、数字信号处理器(dsp)、基于多核的处理器架构的处理器等。存储器320可以是使用数据存储技术实现的任何类型的存储器,包括但不限于随机存取存储器、只读存储器、基于半导体的存储器、闪存、磁盘存储器等。
48.此外,在本公开的实施例中,装置300也可包括输入设备330,例如键盘、鼠标等,用于输入待构建的web项目中的一些已有代码。另外,装置300还可包括输出设备340,例如显示器等,用于输出构建web项目的结果。
49.在本公开的其它实施例中,还提供了一种存储有计算机程序的计算机可读存储介质,其中,计算机程序在由处理器执行时能够实现如图1至图2所示的方法的步骤。
50.综上所述,根据本公开的实施例的用于构建web项目的方法无需人工编写配置文件就可以自动构建web项目,可避免由于人为失误或者经验不足而构建失败的问题。
51.附图中的流程图和框图显示了根据本公开的多个实施例的装置和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
52.除非上下文中另外明确地指出,否则在本文和所附权利要求中所使用的词语的单数形式包括复数,反之亦然。因而,当提及单数时,通常包括相应术语的复数。相似地,措辞“包含”和“包括”将解释为包含在内而不是独占性地。同样地,术语“包括”和“或”应当解释为包括在内的,除非本文中明确禁止这样的解释。在本文中使用术语“示例”之处,特别是当其位于一组术语之后时,所述“示例”仅仅是示例性的和阐述性的,且不应当被认为是独占性的或广泛性的。
53.适应性的进一步的方面和范围从本文中提供的描述变得明显。应当理解,本技术
的各个方面可以单独或者与一个或多个其它方面组合实施。还应当理解,本文中的描述和特定实施例旨在仅说明的目的并不旨在限制本技术的范围。
54.以上对本公开的若干实施例进行了详细描述,但显然,本领域技术人员可以在不脱离本公开的精神和范围的情况下对本公开的实施例进行各种修改和变型。本公开的保护范围由所附的权利要求限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献