一种JS文件生成方法、装置、设备及存储介质制造方法及图纸

技术编号:37979107 阅读:6 留言:0更新日期:2023-06-30 09:54
本申请公开了一种JS文件生成方法、装置、设备及存储介质,涉及计算机技术领域,包括:通过Flutter框架对源码进行编译得到初始dill文件,利用预设抽象语法树编译器在所述初始dill文件中插入预设方法收集器得到修改后dill文件;通过所述Flutter框架将所述修改后dill文件编译为初始JS文件后,启动预设浏览器并运行所述初始JS文件,在所述预设浏览器运行结束之后,将所述初始dill文件中的基于所述预设方法函数列表确定的待剔除方法函数进行剔除处理以得到目标dill文件;通过所述Flutter框架将所述目标dill文件进行编译以得到目标JS文件。这样一来,大大降低了获取到的目标JS文件的大小。小。小。

【技术实现步骤摘要】
一种JS文件生成方法、装置、设备及存储介质


[0001]本专利技术涉及计算机
,特别涉及一种JS文件生成方法、装置、设备及存储介质。

技术介绍

[0002]Flutter框架可以将代码编译为浏览器可允许的JS代码产物。但是现阶段,Flutter web编译产物过大,即使在最简单的demo情况下,编译产物都有将近1.4M。因此,如何降低Flutter web编译产物的大小是需要解决的问题。

技术实现思路

[0003]有鉴于此,本专利技术的目的在于提供一种JS文件生成方法、装置、设备及存储介质,降低JS文件产物的大小,进而提高网站访问速度。其具体方案如下:
[0004]第一方面,本申请公开了一种JS文件生成方法,包括:
[0005]获取通过Flutter框架对源码进行编译后得到的初始dill文件,并利用预设抽象语法树编译器在所述初始dill文件中插入预设方法收集器以得到修改后dill文件;
[0006]通过所述Flutter框架将所述修改后dill文件编译为初始JS文件后,启动预设浏览器并通过预设自动化脚本运行所述初始JS文件,以便所述预设方法收集器收集在所述初始JS文件运行过程中使用过的方法函数并存储至预设方法函数列表中;
[0007]在所述预设浏览器运行结束之后,将所述初始dill文件中的基于所述预设方法函数列表确定的待剔除方法函数进行剔除处理以得到目标dill文件;
[0008]通过所述Flutter框架将所述目标dill文件进行编译以得到目标JS文件。
[0009]可选的,所述利用预设抽象语法树编译器在所述初始dill文件中插入预设方法收集器以得到修改后dill文件之前,还包括:
[0010]定义一个全局的容器列表以及方法收集函数以得到所述预设方法收集器。
[0011]可选的,所述利用预设抽象语法树编译器在所述初始dill文件中插入预设方法收集器以得到修改后dill文件,包括:
[0012]利用预设抽象语法树编译器获取预设方法收集器,并将所述预设方法收集器分别注入到所述初始dill文件的所有方法节点中以得到修改后dill文件。
[0013]可选的,所述通过所述Flutter框架将所述修改后dill文件编译为初始JS文件后,启动预设浏览器并通过预设自动化脚本运行所述初始JS文件,包括:
[0014]通过所述Flutter框架中的预设dart2js编译器将所述修改后dill文件编译为初始JS文件后,启动预设浏览器并利用UI自动化脚本运行所述初始JS文件。
[0015]可选的,所述在所述预设浏览器运行结束之后,将所述初始dill文件中的基于所述预设方法函数列表确定的待剔除方法函数进行剔除处理以得到目标dill文件,包括:
[0016]在所述预设浏览器运行结束之后,利用所述预设抽象语法树编译器获取到所述初始dill文件,并基于所述方法函数列表将所述初始dill文件中的不包含在所述方法函数列
表中的方法函数进行剔除处理以得到目标dill文件。
[0017]第二方面,本申请公开了一种JS文件生成装置,包括:
[0018]方法函数插入模块,用于获取通过Flutter框架对源码进行编译后得到的初始dill文件,并利用预设抽象语法树编译器在所述初始dill文件中插入预设方法收集器以得到修改后dill文件;
[0019]文件运行模块,用于通过所述Flutter框架将所述修改后dill文件编译为初始JS文件后,启动预设浏览器并通过预设自动化脚本运行所述初始JS文件,以便所述预设方法收集器收集在所述初始JS文件运行过程中使用过的方法函数并存储至预设方法函数列表中;
[0020]函数剔除模块,用于在所述预设浏览器运行结束之后,将所述初始dill文件中的基于所述预设方法函数列表确定的待剔除方法函数进行剔除处理以得到目标dill文件;
[0021]文件编译模块,用于通过所述Flutter框架将所述目标dill文件进行编译以得到目标JS文件。
[0022]可选的,所述文件运行模块,包括:
[0023]文件编译运行单元,用于通过所述Flutter框架中的预设dart2js编译器将所述修改后dill文件编译为初始JS文件后,启动预设浏览器并利用UI自动化脚本运行所述初始JS文件。
[0024]可选的,所述函数剔除模块,包括:
[0025]函数剔除单元,用于在所述预设浏览器运行结束之后,利用所述预设抽象语法树编译器获取到所述初始dill文件,并基于所述方法函数列表将所述初始dill文件中的不包含在所述方法函数列表中的方法函数进行剔除处理以得到目标dill文件。
[0026]第三方面,本申请公开了一种电子设备,包括:
[0027]存储器,用于保存计算机程序;
[0028]处理器,用于执行所述计算机程序以实现前述的JS文件生成方法。
[0029]第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现前述的JS文件生成方法。
[0030]可见,本申请中,首先获取通过Flutter框架对源码进行编译后得到的初始dill文件,并利用预设抽象语法树编译器在所述初始dill文件中插入预设方法收集器以得到修改后dill文件;通过所述Flutter框架将所述修改后dill文件编译为初始JS文件后,启动预设浏览器并通过预设自动化脚本运行所述初始JS文件,以便所述预设方法收集器收集在所述初始JS文件运行过程中使用过的方法函数并存储至预设方法函数列表中;在所述预设浏览器运行结束之后,将所述初始dill文件中的基于所述预设方法函数列表确定的待剔除方法函数进行剔除处理以得到目标dill文件;通过所述Flutter框架将所述目标dill文件进行编译以得到目标JS文件。可见,通过插入的预设方法收集器收集初始JS文件运行过程中使用过的方法函数并存储到预设方法函数列表中,然后根据所述预设方法函数列表将初始dill文件中的没有使用到的方法函数进行了相应的剔除以得到目标dill文件,根据所述目标dill文件可以得到目标JS文件。这样一来,可以根据实际运行场景将Flutter web编译产物运行过程中使用不到的代码进行剔除,可以大大降低JS文件的大小,且整个过程中不需要人工去删除代码,只需要在得到初始dill文件之后,利用预设浏览器运行所述初始dill
文件,就可以自动收集没有使用的方法函数,然后将这些方法函数进行剔除,降低了人工成本。
附图说明
[0031]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0032]图1为本申请公开的一种JS文件生成方法流程图;
[0033]图2为本申请公开的一种具体本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种JS文件生成方法,其特征在于,包括:获取通过Flutter框架对源码进行编译后得到的初始dill文件,并利用预设抽象语法树编译器在所述初始dill文件中插入预设方法收集器以得到修改后dill文件;通过所述Flutter框架将所述修改后dill文件编译为初始JS文件后,启动预设浏览器并通过预设自动化脚本运行所述初始JS文件,以便所述预设方法收集器收集在所述初始JS文件运行过程中使用过的方法函数并存储至预设方法函数列表中;在所述预设浏览器运行结束之后,将所述初始dill文件中的基于所述预设方法函数列表确定的待剔除方法函数进行剔除处理以得到目标dill文件;通过所述Flutter框架将所述目标dill文件进行编译以得到目标JS文件。2.根据权利要求1所述的JS文件生成方法,其特征在于,所述利用预设抽象语法树编译器在所述初始dill文件中插入预设方法收集器以得到修改后dill文件之前,还包括:定义一个全局的容器列表以及方法收集函数以得到所述预设方法收集器。3.根据权利要求2所述的JS文件生成方法,其特征在于,所述利用预设抽象语法树编译器在所述初始dill文件中插入预设方法收集器以得到修改后dill文件,包括:利用预设抽象语法树编译器获取预设方法收集器,并将所述预设方法收集器分别注入到所述初始dill文件的所有方法节点中以得到修改后dill文件。4.根据权利要求1所述的JS文件生成方法,其特征在于,所述通过所述Flutter框架将所述修改后dill文件编译为初始JS文件后,启动预设浏览器并通过预设自动化脚本运行所述初始JS文件,包括:通过所述Flutter框架中的预设dart2js编译器将所述修改后dill文件编译为初始JS文件后,启动预设浏览器并利用UI自动化脚本运行所述初始JS文件。5.根据权利要求1至4任一项所述的JS文件生成方法,其特征在于,所述在所述预设浏览器运行结束之后,将所述初始dill文件中的基于所述预设方法函数列表确定的待剔除方法函数进行剔除处理以得到目标dill文件,包括:在所述预设浏览器运行结束之后,利用所述...

【专利技术属性】
技术研发人员:周毅刘昌钰齐翊
申请(专利权)人:政采云有限公司
类型:发明
国别省市:

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

1