CN117632226A - 程序分包及构建方法、装置、计算设备及计算机存储介质 - Google Patents

程序分包及构建方法、装置、计算设备及计算机存储介质 Download PDF

Info

Publication number
CN117632226A
CN117632226A CN202311388631.0A CN202311388631A CN117632226A CN 117632226 A CN117632226 A CN 117632226A CN 202311388631 A CN202311388631 A CN 202311388631A CN 117632226 A CN117632226 A CN 117632226A
Authority
CN
China
Prior art keywords
module
program
programs
web
respectively corresponding
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.)
Pending
Application number
CN202311388631.0A
Other languages
English (en)
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 58 Information Technology Co Ltd
Original Assignee
Beijing 58 Information 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 58 Information Technology Co Ltd filed Critical Beijing 58 Information Technology Co Ltd
Priority to CN202311388631.0A priority Critical patent/CN117632226A/zh
Publication of CN117632226A publication Critical patent/CN117632226A/zh
Pending legal-status Critical Current

Links

Abstract

本申请实施例提供一种程序分包及构建方法、装置、计算设备及计算机存储介质。其中,确定目标程序,所述目标程序为基于所述开发框架创建的代码程序;从所述目标程序中确定出开发代码,并将所述开发代码按照业务种类划分为多个功能模块,每个所述业务种类对应至少一个功能模块;创建所述多个功能模块分别对应的模块程序,并生成多个模块程序分别对应的第一配置文件;根据多个所述模块程序分别对应的第一配置文件,生成所述模块程序对应的模块地址;执行所述目标工程,以根据多个所述模块工程分别对应的模块地址,构建web应用。本申请实施例提供的技术方案,能够提高代码的可维护性和复用性,并提升开发和部署的灵活性。

Description

程序分包及构建方法、装置、计算设备及计算机存储介质
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种程序分包及构建方法、装置、计算设备及计算机存储介质。
背景技术
Flutter是一种跨平台的移动应用开发框架,可以用于开发iOS、Android和Web等多个平台的应用。Flutter Web是Flutter框架的扩展,可以用于构建Web应用。使用FlutterWeb可以在一套代码基础上开发同时移动应用和Web应用,极大地提高了开发效率和代码复用率。
当在Flutter Web框架中构建Web应用时,传统做法是将整个Flutter工程构建为一个Web应用,生成一个URL来访问该web应用。
然而在上述传统做法中,当需要更新web应用中的某个模块时,需要重新构建整个工程,影响了开发和部署的灵活性。
发明内容
本申请实施例提供一种程序分包及构建方法、装置、计算设备及计算机存储介质,用以解决现有技术中开发和部署的灵活性差的问题。
第一方面,本申请实施例中提供了一种程序分包及构建方法,应用于开发框架,包括:
确定目标程序,所述目标程序为基于所述开发框架创建的代码程序;
从所述目标程序中确定出开发代码,并将所述开发代码按照业务种类划分为多个功能模块,每个所述业务种类对应至少一个功能模块;
创建所述多个功能模块分别对应的模块程序,并生成多个模块程序分别对应的第一配置文件;
根据多个所述模块程序分别对应的第一配置文件,生成所述模块程序对应的模块地址;
执行所述目标工程,以根据多个所述模块工程分别对应的模块地址,构建web应用。
可选地,所述将所述开发代码按照业务种类划分为多个功能模块,包括:
根据业务需求,确定至少一个业务种类;
将所述开发代码按照业务种类划分为多个功能模块,且每个所述功能模块具有对应的独立文件夹。
可选地,所述创建所述多个功能模块分别对应的模块程序,包括:
针对每个所述业务种类,创建对应的模块程序;
在每个所述模块程序中,根据业务需求,确定所述模块程序对应的业务逻辑;
每个模块程序中,使用所述功能模块对应的独立文件夹存放所述模块程序的相关代码,以生成所述多个功能模块分别对应的模块程序。
可选地,所述生成多个模块程序分别对应的第一配置文件,包括:
进入所述模块程序所在的目录;
在目录下执行用于生成第一配置文件的第一命令行,以生成多个模块程序分别对应的第一配置文件。
可选地,所述生成所述模块程序对应的模块地址,包括:
获取第二配置文件以及入口点文件,所述第二配置文件包括Web应用程序所需的资源、字体、依赖项;所述入口点文件用于定义子工程的Flutter应用程序入口;
将所述第一配置文件、所述第二配置文件以及所述入口点文件部署到web服务上,以生成所述模块程序对应的模块地址。
可选地,所述执行所述目标工程,以根据多个所述模块工程分别对应的模块地址,构建web应用,包括:
在所述目标程序的入口文件中,根据多个所述模块程序的模块地址进行页面导航,并在到导航到所述模块程序的模块地址时,加载所述模块程序的Web模块,并在所述目标程序的Web页面中渲染所述模块程序的内容;
响应于第二命令行,根据多个所述模块程序的内容生成web应用,所述第二命令行为用于生成web应用程序的静态文件的命令。
可选地,所述web应用可包括完全基于Web技术开发和运行的应用程序和/或基于原生移动和web技术的混合应用程序。
第二方面,本申请实施例提供了一种程序分包及构建装置,应用于开发框架,包括:
确定模块,用于确定目标程序,所述目标程序为基于所述开发框架创建的代码程序;从所述目标程序中确定出开发代码;并将所述开发代码按照业务种类划分为多个功能模块,每个所述业务种类对应至少一个功能模块;
创建模块,用于创建所述多个功能模块分别对应的模块程序;
生成模块,用于生成多个模块程序分别对应的第一配置文件;根据多个所述模块程序分别对应的第一配置文件,生成所述模块程序对应的模块地址;
执行模块,用于执行所述目标工程,以根据多个所述模块工程分别对应的模块地址,构建web应用。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
第三方面,本申请实施例提供了一种计算设备,包括处理组件以及存储组件;所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行,实现如上述第一方面所述的程序分包及构建方法。
第四方面,本申请实施例提供了一种计算机存储介质,存储有计算机程序,所述计算程序被计算机执行时,实现如上述第一方面所述的程序分包及构建方法。
本申请实施例中,确定目标程序,所述目标程序为基于所述开发框架创建的代码程序;从所述目标程序中确定出开发代码,并将所述开发代码按照业务种类划分为多个功能模块,每个所述业务种类对应至少一个功能模块;创建所述多个功能模块分别对应的模块程序,并生成多个模块程序分别对应的第一配置文件;根据多个所述模块程序分别对应的第一配置文件,生成所述模块程序对应的模块地址;执行所述目标工程,以根据多个所述模块工程分别对应的模块地址,构建web应用,能够提高代码的可维护性和复用性,并提升开发和部署的灵活性。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种程序分包及构建方法的流程图;
图2为本申请实施例提供的另一种程序分包及构建方法的流程图;
图3为本申请实施例提供的一种程序分包及构建装置的结构示意图;
图4为本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在本申请的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本申请实施例的技术方案主要运用于在Flutter Web开发框架下实现对目标程序的分包及web应用的建构。
其中,Flutter是一种跨平台的移动应用开发框架,可以用于开发iOS、Android和Web等多个平台的应用。Flutter Web是Flutter框架的扩展,可以用于构建Web应用。使用Flutter Web可以在一套代码基础上开发同时移动应用和Web应用,极大地提高了开发效率和代码复用率。
发明人在研究过程中发现,当在Flutter Web框架中构建Web应用时,传统做法是将整个Flutter工程(即目标程序)不进行分包,而是直接生成一个统一资源定位符(Uniform Resource Locator,URL)地址后,根据该URL地址构建Web应用。
然而,这样的方式由于将整个Flutter工程不进行分包,而直接构建为一个Web应用可能限制了模块化开发和扩展的能力。并且,当需要新增或修改某个功能模块时,可能需要重新构建整个应用,增加了开发和部署的复杂性。
为解决上述问题,本申请实施例提供了一种程序分包及构建方法,该方法通过确定目标程序,所述目标程序为基于所述开发框架创建的代码程序;从所述目标程序中确定出开发代码,并将所述开发代码按照业务种类划分为多个功能模块,每个所述业务种类对应至少一个功能模块;创建所述多个功能模块分别对应的模块程序,并生成多个模块程序分别对应的第一配置文件;根据多个所述模块程序分别对应的第一配置文件,生成所述模块程序对应的模块地址;执行所述目标工程,以根据多个所述模块工程分别对应的模块地址,构建web应用,能够提高代码的可维护性和复用性,并提升开发和部署的灵活性。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的一种程序分包及构建方法的流程图,如图1所示,该方法应用于开发框架,具体可以是Flutter Web开发框架;
该方法包括:
101、确定目标程序;
在该步骤中,所述目标程序为基于所述开发框架创建的代码程序,其中,目标程序为Flutter Web开发框架中的主工程,即主工程是一个独立的Flutter项目。主工程通常包含应用的整体架构、主题样式、路由管理、全局状态管理等核心功能,主工程可以包含多个子工程作为其依赖模块。
本申请实施例中,根据业务需求在Flutter目录中确定Flutter项目,并将该Flutter项目作为待生成的应用程序,即目标程序。
102、从所述目标程序中确定出开发代码,并将所述开发代码按照业务种类划分为多个功能模块,每个所述业务种类对应至少一个功能模块;
在该步骤中,目标程序是一个完整的Flutter项目,它包含了整个应用的核心逻辑、UI界面、数据管理等代码,目标程序中的代码可以与模块程序进行交互,通过依赖模块程序的方式来使用模块程序中提供的功能、组件和服务。目标程序可以调用模块程序的方法、引用模块程序的类、使用模块程序的UI组件等。
本申请实施例中,在一个Flutter项目中,开发代码的确定主要是根据应用的需求和功能来决定。
下面是一个示例,演示如何将开发代码按照业务种类划分为多个功能模块:
假设正在开发一个电子商务应用,其中包含以下几个主要业务种类:用户管理、商品管理、购物车管理和订单管理。
用户管理功能模块:这个模块负责用户注册、登录、个人信息管理等与用户相关的功能。在这个模块中,可以使用Flutter的表单验证、数据库存储等功能来实现用户管理功能。
商品管理功能模块:这个模块负责商品的展示、搜索、分类等功能。在这个模块中,可以使用Flutter的列表组件、网络请求、缓存等功能来实现商品管理功能。
购物车管理功能模块:这个模块负责用户的购物车功能,包括添加商品到购物车、修改购物车商品数量、结算等功能。在这个模块中,可以使用Flutter的状态管理、本地存储等功能来实现购物车管理功能。
订单管理功能模块:这个模块负责用户的订单管理,包括订单的创建、查看、支付等功能。在这个模块中,可以使用Flutter的网络请求、支付接口等功能来实现订单管理功能。
通过将开发代码按照业务种类划分为多个功能模块,可以使代码结构更清晰、可维护性更高。每个功能模块可以独立开发、测试和部署,降低了代码耦合度,同时也便于团队协作。
具体实施例可以是创建一个Flutter项目,然后在项目中创建不同的目录或模块来划分不同的功能模块。例如,可以创建一个"user"目录用于用户管理模块,其中包含用户登录、注册等功能的代码文件。类似地,可以创建"product"目录用于商品管理模块,其中包含商品展示、搜索等功能的代码文件。通过这种方式,可以将不同的功能模块分开管理,让开发工作更加有条理。
103、创建所述多个功能模块分别对应的模块程序,并生成多个模块程序分别对应的第一配置文件;
在该步骤中,在Flutter中,可以使用Flutter Module的方式来创建多个功能模块。每个功能模块可以是一个独立的Flutter Module项目,包含自己的代码、资源和配置文件。
以下是对名词的解释以及具体实施例:
功能模块:指应用中的一个独立功能单元,例如用户管理、商品管理等。每个功能模块可以有自己的代码、资源和配置文件。
模块程序(Flutter Module Project):指每个功能模块对应的Flutter Module项目,包含该模块的代码和资源。每个Flutter Module Project可以独立开发、测试和部署。其中,模块程序为目标程序的子程序,及目标程序为主工程的情况下,模块程序为子工程。
第一配置文件:指Flutter Module项目中的配置文件,用于定义Flutter Module的一些特定配置。在Flutter中,可以使用pubspec.yaml文件来管理依赖关系,以及定义资源文件的路径等。其中,第一配置文件可包括web文件夹和web/index.html文件。
本申请实施例中,假设有一个电子商务应用,其中包含用户管理、商品管理和订单管理三个功能模块。可以按照以下步骤来创建和配置每个功能模块的Flutter Module项目和Web配置文件:
创建Flutter Module项目:
使用Flutter命令行工具创建一个空的Flutter Module项目:
flutter create-t module user_module
flutter create-t module product_module
flutter create-t module order_module
配置Web配置文件:
进入每个Flutter Module项目的根目录,找到pubspec.yaml文件。
在pubspec.yaml文件中,可以添加依赖项、定义资源文件路径等。根据具体需求,可以添加与该模块相关的依赖项和资源文件。
例如,对于用户管理功能模块的Flutter Module项目,可以创建一个名为"user_module"的Flutter Module项目,并在该项目的pubspec.yaml文件中添加依赖项和资源文件路径。类似地,可以创建名为"product_module"和"order_module"的Flutter Module项目,并在相应的pubspec.yaml文件中进行配置。
通过这种方式,每个功能模块都有自己的Flutter Module项目和Web配置文件,可以独立进行开发和管理。
104、根据多个所述模块程序分别对应的第一配置文件,生成所述模块程序对应的模块地址;
在该步骤中,根据多个Flutter Module Project分别对应的web配置文件,可以生成相应的URL地址。
在这里,来解释一下名词并提供具体的实施例。
URL地址:指Uniform Resource Locator,即统一资源定位符,用于在Web上标识和定位资源。在这里,URL地址用于访问和使用每个Flutter模块程序的Web应用。
本申请实施例中,假设有一个电子商务应用,其中包含用户管理、商品管理和订单管理三个功能模块。可以按照以下步骤来创建和配置每个功能模块的Flutter模块程序和Web配置文件,并生成相应的URL地址:
创建Flutter模块程序:
使用Flutter命令行工具创建一个空的Flutter模块程序:
flutter create-t module user_module
flutter create-t module product_module
flutter create-t module order_module
配置Web配置文件:
进入每个Flutter模块程序的根目录,找到pubspec.yaml文件。
在pubspec.yaml文件中,可以根据需要添加依赖项、定义资源文件路径等。具体的配置选项可以根据实际需求进行调整。
构建和部署Flutter Web应用:
在每个Flutter模块程序的根目录下,运行以下命令来构建Web应用:
flutter build web
这将生成一个构建后的Web应用文件夹,其中包含了Flutter Web应用的HTML、CSS和JavaScript文件。
将构建后的Web应用文件夹上传到服务器,并配置相应的URL地址。具体的部署方法可以根据服务器环境和需求进行调整。
通过这种方式,每个Flutter模块程序都可以生成对应的URL地址,用于访问和使用相应的功能模块。
105、执行所述目标工程,以根据多个所述模块工程分别对应的模块地址,构建web应用。
在该步骤中,根据多个模块工程分别对应的模块地址,执行目标工程来构建Web应用。在这里,来解释一下名词并提供具体的实施例。
目标工程:指要构建的Flutter Web应用的主项目。该项目负责整合和管理多个模块工程,以生成最终的Web应用。
模块工程:指每个功能模块对应的Flutter模块程序,包含该模块的代码和资源。每个模块工程可以独立开发、测试和部署。
模块地址:指每个模块工程生成的URL地址,用于访问和使用相应的功能模块。
构建Web应用:指将多个模块工程整合为一个完整的Flutter Web应用,并生成可以在Web上运行的应用文件。
本申请实施例中,假设有一个电子商务应用,其中包含用户管理、商品管理和订单管理三个功能模块。可以按照以下步骤来执行目标工程,以构建Web应用:
创建目标工程:
使用Flutter命令行工具创建一个空的Flutter项目:
flutter create target_project
集成模块工程:
进入目标工程的根目录,找到pubspec.yaml文件。
在pubspec.yaml文件中,添加每个模块工程的依赖项。例如:
yaml
dependencies:
user_module:
path:../user_module
product_module:
path:../product_module
order_module:
path:../order_module
构建Web应用:
在目标工程的根目录下,运行以下命令来构建Web应用:
flutter build web
这将生成一个构建后的Web应用文件夹,其中包含了整合了多个模块工程的Flutter Web应用的HTML、CSS和JavaScript文件。
部署Web应用:
将构建后的Web应用文件夹上传到服务器,并配置相应的URL地址。具体的部署方法可以根据服务器环境和需求进行调整。
通过这种方式,目标工程可以根据多个模块工程分别对应的模块地址,构建出一个完整的Flutter Web应用,用户可以通过访问相应的模块地址来使用不同的功能模块。
图2为本申请实施例提供的另一种程序分包及构建方法的流程图,如图2所示,该方法应用于开发框架,具体可以是Flutter Web开发框架;
该方法包括:
201、确定目标程序,所述目标程序为基于所述开发框架创建的代码程序;
202、根据业务需求,确定至少一个业务种类;
203、将所述开发代码按照业务种类划分为多个功能模块,且每个所述功能模块具有对应的独立文件夹。
在上述步骤202~203中,根据业务需求确定一个业务种类,并将开发代码按照该业务种类划分为多个功能模块,每个功能模块具有对应的独立文件夹。
以下是具体的实施例:
根据业务需求确定业务种类:
假设的电子商务应用有以下两个业务种类:商品管理和订单管理。
将开发代码按照业务种类划分为功能模块:
创建一个名为"product_management"的功能模块,用于处理商品管理相关的代码。
创建一个名为"order_management"的功能模块,用于处理订单管理相关的代码。
每个功能模块具有对应的独立文件夹:
在目标工程的根目录下,创建名为"product_management"和"order_management"的文件夹,分别用于存放商品管理和订单管理功能模块的代码和资源。
204、创建所述多个功能模块分别对应的模块程序,并生成多个模块程序分别对应的第一配置文件;
本申请实施例中,可选地,步骤204可包括:
2041、针对每个所述业务种类,创建对应的模块程序;
在该步骤中,例如以业务种类包括商品管理和订单管理为例,根据之前提到的业务种类,会创建两个模块程序,分别用于商品管理和订单管理。
2042、在每个所述模块程序中,根据业务需求,确定所述模块程序对应的业务逻辑;
在该步骤中,在每个模块程序中,根据业务需求确定相应的业务逻辑。例如,在商品管理模块中,可以实现商品的添加、编辑和删除功能;在订单管理模块中,可以实现订单的创建、处理和取消功能。
2043、每个模块程序中,使用所述功能模块对应的独立文件夹存放所述模块程序的相关代码,以生成所述多个功能模块分别对应的模块程序。
在该步骤中,每个模块程序都应该有一个对应的独立文件夹,用于存放该模块程序的相关代码和资源。这样可以确保每个模块的代码和资源互相独立,方便管理和维护。
205、根据多个所述模块程序分别对应的第一配置文件,生成所述模块程序对应的模块地址;
本申请实施例中,可选地,步骤205可包括:
2051、进入所述模块程序所在的目录;
在该步骤中,在执行步骤2052之前,我们需要进入每个模块程序所在的目录,以便在正确的位置执行相应的命令。
2052、在目录下执行用于生成第一配置文件的第一命令行,以生成多个模块程序分别对应的第一配置文件。
在该步骤中,在模块程序所在的目录下,执行用于生成第一配置文件的命令行。第一配置文件是用于描述该模块程序的特定配置信息,例如模块名称、路由配置等。
2053、获取第二配置文件以及入口点文件,所述第二配置文件包括Web应用程序所需的资源、字体、依赖项;所述入口点文件用于定义子工程的Flutter应用程序入口;
2054、将所述第一配置文件、所述第二配置文件以及所述入口点文件部署到web服务上,以生成所述模块程序对应的模块地址。
在该步骤中,将第一配置文件、第二配置文件和入口点文件部署到Web服务上,以生成模块程序对应的模块地址。这样,用户可以通过访问相应的URL地址来使用不同的模块程序。
本申请实施例中,假设按照之前的实施例,有一个名为"product_management"的模块程序,并且要进行步骤2051至2054的操作。
进入模块程序所在的目录:
在命令行中,进入"product_management"模块程序所在的目录。
生成第一配置文件:
在模块程序所在的目录下,执行命令行来生成第一配置文件。例如,可以使用Flutter命令行工具的flutter create命令来创建一个新的Flutter项目,并将项目名称设置为"product_management"。
获取第二配置文件和入口点文件:
第二配置文件(例如pubspec.yaml)是一个用于描述模块程序所需资源、字体和依赖项的配置文件。可以通过复制其他已有的配置文件,并根据需要进行修改。
入口点文件(例如main.dart)用于定义子工程的Flutter应用程序入口。可以根据模块的需求进行编写。
部署到Web服务上生成模块地址:
将第一配置文件、第二配置文件和入口点文件部署到Web服务上,并配置相应的URL地址。例如,可以将"product_management"模块程序的URL地址设置为"/product"。
通过上述步骤,进一步完善了实施例,包括进入模块程序所在的目录、生成第一配置文件、获取第二配置文件和入口点文件,并将它们部署到Web服务上以生成模块程序对应的模块地址。用户可以通过访问相应的URL地址来使用不同的模块程序。
206、执行所述目标工程,以根据多个所述模块工程分别对应的模块地址,构建web应用。
本申请实施例中,可选地,步骤206可包括:
2061、在所述目标程序的入口文件中,根据多个所述模块程序的模块地址进行页面导航,并在到导航到所述模块程序的模块地址时,加载所述模块程序的Web模块,并在所述目标程序的Web页面中渲染所述模块程序的内容;
在该步骤中,在目标程序的入口文件中,根据多个模块程序的模块地址进行页面导航。当导航到某个模块程序的模块地址时,加载该模块程序的Web模块,并在目标程序的Web页面中渲染该模块程序的内容。
2062、响应于第二命令行,根据多个所述模块程序的内容生成web应用,所述第二命令行为用于生成web应用程序的静态文件的命令。
在该步骤中,响应于第二命令行,根据多个模块程序的内容生成Web应用的静态文件。第二命令行是用于生成Web应用程序的静态文件的命令,以便将整个应用程序部署到Web服务器上。
本申请实施例中,假设按照之前的实施例,有一个名为"product_management"的模块程序,并且要进行步骤2061和2062的操作。
页面导航和加载模块程序:
在目标程序的入口文件中,根据多个模块程序的模块地址进行页面导航。例如,可以使用Flutter的路由管理插件(如"fluro")来定义模块地址和对应的页面导航。
当导航到"product_management"模块程序的模块地址时,加载该模块程序的Web模块,并在目标程序的Web页面中渲染该模块程序的内容。可以使用Flutter的Web插件(如"flutter_web")来实现模块的加载和渲染。
生成Web应用的静态文件:
响应于第二命令行,使用相应的命令来生成Web应用的静态文件。例如,可以使用Flutter命令行工具的flutter build web命令来生成包含整个应用程序的静态文件。
这将生成一个包含所有模块程序的静态HTML、CSS和JavaScript文件的文件夹,可以将其部署到Web服务器上。
通过上述步骤,进一步完善了实施例,包括在目标程序的入口文件中进行页面导航和加载模块程序,并根据多个模块程序的内容生成Web应用的静态文件。用户可以通过访问目标程序的Web页面来导航到不同的模块程序,并在同一个页面中渲染模块程序的内容。同时,可以将生成的静态文件部署到Web服务器上,以便用户可以通过浏览器访问和使用整个应用程序。
其中,所述web应用可包括完全基于Web技术开发和运行的应用程序和/或基于原生移动和web技术的混合应用程序。
本申请实施例中,将Web技术与原生移动技术结合开发混合应用程序可以提供更广泛的覆盖范围、更高的可重用性、更快的迭代和发布、更简化的维护、更丰富的功能和更高的开发效率。这使得混合应用程序成为一种灵活、高效和成本效益的解决方案,适用于许多应用开发场景。
本申请提供的技术方案中,确定目标程序,所述目标程序为基于所述开发框架创建的代码程序;从所述目标程序中确定出开发代码,并将所述开发代码按照业务种类划分为多个功能模块,每个所述业务种类对应至少一个功能模块;创建所述多个功能模块分别对应的模块程序,并生成多个模块程序分别对应的第一配置文件;根据多个所述模块程序分别对应的第一配置文件,生成所述模块程序对应的模块地址;执行所述目标工程,以根据多个所述模块工程分别对应的模块地址,构建web应用。本申请实施例提供的技术方案,能够提高代码的可维护性和复用性,并提升开发和部署的灵活性。
图3为本申请实施例提供的一种程序分包及构建装置的结构示意图,如图3所示,该装置应用于开发框架,
该装置包括:
确定模块31,用于确定目标程序,所述目标程序为基于所述开发框架创建的代码程序;从所述目标程序中确定出开发代码;并将所述开发代码按照业务种类划分为多个功能模块,每个所述业务种类对应至少一个功能模块;
创建模块32,用于创建所述多个功能模块分别对应的模块程序;
生成模块33,用于生成多个模块程序分别对应的第一配置文件;根据多个所述模块程序分别对应的第一配置文件,生成所述模块程序对应的模块地址;
执行模块34,用于执行所述目标工程,以根据多个所述模块工程分别对应的模块地址,构建web应用。
本申请实施例中,可选地,该装置的确定模块31具体用于根据业务需求,确定至少一个业务种类;将所述开发代码按照业务种类划分为多个功能模块,且每个所述功能模块具有对应的独立文件夹。
本申请实施例中,可选地,该装置的创建模块32具体用于针对每个所述业务种类,创建对应的模块程序;在每个所述模块程序中,根据业务需求,确定所述模块程序对应的业务逻辑;每个模块程序中,使用所述功能模块对应的独立文件夹存放所述模块程序的相关代码,以生成所述多个功能模块分别对应的模块程序。
本申请实施例中,可选地,该装置的生成模块33具体用于进入所述模块程序所在的目录;在目录下执行用于生成第一配置文件的第一命令行,以生成多个模块程序分别对应的第一配置文件。
本申请实施例中,可选地,该装置的生成模块33具体用于获取第二配置文件以及入口点文件,所述第二配置文件包括Web应用程序所需的资源、字体、依赖项;所述入口点文件用于定义子工程的Flutter应用程序入口;将所述第一配置文件、所述第二配置文件以及所述入口点文件部署到web服务上,以生成所述模块程序对应的模块地址。
本申请实施例中,可选地,该装置的构建模块34具体用于在所述目标程序的入口文件中,根据多个所述模块程序的模块地址进行页面导航,并在到导航到所述模块程序的模块地址时,加载所述模块程序的Web模块,并在所述目标程序的Web页面中渲染所述模块程序的内容;响应于第二命令行,根据多个所述模块程序的内容生成web应用,所述第二命令行为用于生成web应用程序的静态文件的命令。
本申请实施例中,可选地,该所述web应用可包括完全基于Web技术开发和运行的应用程序和/或基于原生移动和web技术的混合应用程序。
图3所述的程序分包及构建装置以执行图2所示实施例所述的程序分包及构建方法,其实现原理和技术效果不再赘述。对于上述实施例中的程序分包及构建装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在一个可能的设计中,图3所示实施例的程序分包及构建装置可以实现为计算设备,如图4所示,该计算设备可以包括存储组件401以及处理组件402;
所述存储组件401存储一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理组件调用执行。
所述处理组件402用于:确定目标程序,所述目标程序为基于所述开发框架创建的代码程序;从所述目标程序中确定出开发代码,并将所述开发代码按照业务种类划分为多个功能模块,每个所述业务种类对应至少一个功能模块;创建所述多个功能模块分别对应的模块程序,并生成多个模块程序分别对应的第一配置文件;根据多个所述模块程序分别对应的第一配置文件,生成所述模块程序对应的模块地址;执行所述目标工程,以根据多个所述模块工程分别对应的模块地址,构建web应用。
其中,处理组件402可以包括一个或多个处理器来执行计算机指令,以完成上述的方法中的全部或部分步骤。当然处理组件也可以为一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
存储组件401被配置为存储各种类型的数据以支持在终端的操作。存储组件可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
显示组件403可以为电致发光(EL)元件、液晶显示器或具有类似结构的微型显示器、或者视网膜可直接显示或类似的激光扫描式显示器。
当然,计算设备必然还可以包括其他部件,例如输入/输出接口、通信组件等。
输入/输出接口为处理组件和外围接口模块之间提供接口,上述外围接口模块可以是输出设备、输入设备等。
通信组件被配置为便于计算设备和其他设备之间有线或无线方式的通信等。
其中,该计算设备可以为物理设备或者云计算平台提供的弹性计算主机等,此时计算设备即可以是指云服务器,上述处理组件、存储组件等可以是从云计算平台租用或购买的基础服务器资源。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时可以实现上述图2所示实施例的程序分包及构建方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种程序分包及构建方法,其特征在于,应用于开发框架,包括:
确定目标程序,所述目标程序为基于所述开发框架创建的代码程序;
从所述目标程序中确定出开发代码,并将所述开发代码按照业务种类划分为多个功能模块,每个所述业务种类对应至少一个功能模块;
创建所述多个功能模块分别对应的模块程序,并生成多个模块程序分别对应的第一配置文件;
根据多个所述模块程序分别对应的第一配置文件,生成所述模块程序对应的模块地址;
执行所述目标工程,以根据多个所述模块工程分别对应的模块地址,构建web应用。
2.根据权利要求1所述的方法,其特征在于,所述将所述开发代码按照业务种类划分为多个功能模块,包括:
根据业务需求,确定至少一个业务种类;
将所述开发代码按照业务种类划分为多个功能模块,且每个所述功能模块具有对应的独立文件夹。
3.根据权利要求1所述的方法,其特征在于,所述创建所述多个功能模块分别对应的模块程序,包括:
针对每个所述业务种类,创建对应的模块程序;
在每个所述模块程序中,根据业务需求,确定所述模块程序对应的业务逻辑;
每个模块程序中,使用所述功能模块对应的独立文件夹存放所述模块程序的相关代码,以生成所述多个功能模块分别对应的模块程序。
4.根据权利要求1所述的方法,其特征在于,所述生成多个模块程序分别对应的第一配置文件,包括:
进入所述模块程序所在的目录;
在目录下执行用于生成第一配置文件的第一命令行,以生成多个模块程序分别对应的第一配置文件。
5.根据权利要求1所述的方法,其特征在于,所述生成所述模块程序对应的模块地址,包括:
获取第二配置文件以及入口点文件,所述第二配置文件包括Web应用程序所需的资源、字体、依赖项;所述入口点文件用于定义子工程的Flutter应用程序入口;
将所述第一配置文件、所述第二配置文件以及所述入口点文件部署到web服务上,以生成所述模块程序对应的模块地址。
6.根据权利要求1所述的方法,其特征在于,所述执行所述目标工程,以根据多个所述模块工程分别对应的模块地址,构建web应用,包括:
在所述目标程序的入口文件中,根据多个所述模块程序的模块地址进行页面导航,并在到导航到所述模块程序的模块地址时,加载所述模块程序的Web模块,并在所述目标程序的Web页面中渲染所述模块程序的内容;
响应于第二命令行,根据多个所述模块程序的内容生成web应用,所述第二命令行为用于生成web应用程序的静态文件的命令。
7.根据权利要求6所述的方法,其特征在于,所述web应用可包括完全基于Web技术开发和运行的应用程序和/或基于原生移动和web技术的混合应用程序。
8.一种程序分包及构建装置,其特征在于,应用于开发框架,包括:
确定模块,用于确定目标程序,所述目标程序为基于所述开发框架创建的代码程序;从所述目标程序中确定出开发代码;并将所述开发代码按照业务种类划分为多个功能模块,每个所述业务种类对应至少一个功能模块;
创建模块,用于创建所述多个功能模块分别对应的模块程序;
生成模块,用于生成多个模块程序分别对应的第一配置文件;根据多个所述模块程序分别对应的第一配置文件,生成所述模块程序对应的模块地址;
执行模块,用于执行所述目标工程,以根据多个所述模块工程分别对应的模块地址,构建web应用。
9.一种计算设备,其特征在于,包括处理组件以及存储组件;所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行,实现如权利要求1~7任一项所述的程序分包及构建方法。
10.一种计算机存储介质,其特征在于,存储有计算机程序,所述计算程序被计算机执行时,实现如权利要求1~7任一项所述的程序分包及构建方法。
CN202311388631.0A 2023-10-24 2023-10-24 程序分包及构建方法、装置、计算设备及计算机存储介质 Pending CN117632226A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311388631.0A CN117632226A (zh) 2023-10-24 2023-10-24 程序分包及构建方法、装置、计算设备及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311388631.0A CN117632226A (zh) 2023-10-24 2023-10-24 程序分包及构建方法、装置、计算设备及计算机存储介质

Publications (1)

Publication Number Publication Date
CN117632226A true CN117632226A (zh) 2024-03-01

Family

ID=90027773

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311388631.0A Pending CN117632226A (zh) 2023-10-24 2023-10-24 程序分包及构建方法、装置、计算设备及计算机存储介质

Country Status (1)

Country Link
CN (1) CN117632226A (zh)

Similar Documents

Publication Publication Date Title
US20230247090A1 (en) Dynamic execution resource selection for customized workflow tasks
US20180074796A1 (en) Inversion of control framework for multiple behaviors of a process
US20170242667A1 (en) Software development tool using a workflow pattern that describes software applications
CN109491763B (zh) 一种系统部署方法、装置及电子设备
CN110851167A (zh) 容器环境更新方法、装置、设备及存储介质
US8661356B2 (en) Time application having an intergrated check engine
US10949331B1 (en) Integration testing of web applications utilizing dynamically generated automation identifiers
CN110806873B (zh) 目标控件确定方法、装置、电子设备及存储介质
US11216285B2 (en) Transaction state logger and retriever
CN111527474A (zh) 软件功能的动态交付
CN115480801A (zh) 一种基于Vue框架的多项目开发部署运行方法和系统
US11640307B2 (en) Process initiation
US10310965B2 (en) Dynamic virtual testing environment for webpages
US10990507B2 (en) System and method for provisioning a virtual machine test environment
US11656864B2 (en) Automatic application of software updates to container images based on dependencies
CN111258567B (zh) 服务代码开发处理方法及装置
CN115454417A (zh) web前端项目搭建方法
US10884986B2 (en) Analyzing and correcting corruption which caused filesystem checker failure so that the filesystem checker will run without error
CN111580804B (zh) 一种软件项目开发的方法和装置
WO2017019465A1 (en) Omnichannel services platform
US11301223B2 (en) Artificial intelligence enabled function logic infusion
US11262986B2 (en) Automatic software generation for computer systems
CN117632226A (zh) 程序分包及构建方法、装置、计算设备及计算机存储介质
JP2023051867A (ja) コンピュータに実装された方法、システム及びコンピュータプログラム
CN115712794A (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