一种JS文件生成方法、装置、设备及存储介质与流程

文档序号:34648747发布日期:2023-06-29 18:56阅读:28来源:国知局
一种JS文件生成方法、装置、设备及存储介质与流程

本发明涉及计算机,特别涉及一种js文件生成方法、装置、设备及存储介质。


背景技术:

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


技术实现思路

1、有鉴于此,本发明的目的在于提供一种js文件生成方法、装置、设备及存储介质,降低js文件产物的大小,进而提高网站访问速度。其具体方案如下:

2、第一方面,本申请公开了一种js文件生成方法,包括:

3、获取通过flutter框架对源码进行编译后得到的初始dill文件,并利用预设抽象语法树编译器在所述初始dill文件中插入预设方法收集器以得到修改后dill文件;

4、通过所述flutter框架将所述修改后dill文件编译为初始js文件后,启动预设浏览器并通过预设自动化脚本运行所述初始js文件,以便所述预设方法收集器收集在所述初始js文件运行过程中使用过的方法函数并存储至预设方法函数列表中;

5、在所述预设浏览器运行结束之后,将所述初始dill文件中的基于所述预设方法函数列表确定的待剔除方法函数进行剔除处理以得到目标dill文件;

6、通过所述flutter框架将所述目标dill文件进行编译以得到目标js文件。

7、可选的,所述利用预设抽象语法树编译器在所述初始dill文件中插入预设方法收集器以得到修改后dill文件之前,还包括:

8、定义一个全局的容器列表以及方法收集函数以得到所述预设方法收集器。

9、可选的,所述利用预设抽象语法树编译器在所述初始dill文件中插入预设方法收集器以得到修改后dill文件,包括:

10、利用预设抽象语法树编译器获取预设方法收集器,并将所述预设方法收集器分别注入到所述初始dill文件的所有方法节点中以得到修改后dill文件。

11、可选的,所述通过所述flutter框架将所述修改后dill文件编译为初始js文件后,启动预设浏览器并通过预设自动化脚本运行所述初始js文件,包括:

12、通过所述flutter框架中的预设dart2js编译器将所述修改后dill文件编译为初始js文件后,启动预设浏览器并利用ui自动化脚本运行所述初始js文件。

13、可选的,所述在所述预设浏览器运行结束之后,将所述初始dill文件中的基于所述预设方法函数列表确定的待剔除方法函数进行剔除处理以得到目标dill文件,包括:

14、在所述预设浏览器运行结束之后,利用所述预设抽象语法树编译器获取到所述初始dill文件,并基于所述方法函数列表将所述初始dill文件中的不包含在所述方法函数列表中的方法函数进行剔除处理以得到目标dill文件。

15、第二方面,本申请公开了一种js文件生成装置,包括:

16、方法函数插入模块,用于获取通过flutter框架对源码进行编译后得到的初始dill文件,并利用预设抽象语法树编译器在所述初始dill文件中插入预设方法收集器以得到修改后dill文件;

17、文件运行模块,用于通过所述flutter框架将所述修改后dill文件编译为初始js文件后,启动预设浏览器并通过预设自动化脚本运行所述初始js文件,以便所述预设方法收集器收集在所述初始js文件运行过程中使用过的方法函数并存储至预设方法函数列表中;

18、函数剔除模块,用于在所述预设浏览器运行结束之后,将所述初始dill文件中的基于所述预设方法函数列表确定的待剔除方法函数进行剔除处理以得到目标dill文件;

19、文件编译模块,用于通过所述flutter框架将所述目标dill文件进行编译以得到目标js文件。

20、可选的,所述文件运行模块,包括:

21、文件编译运行单元,用于通过所述flutter框架中的预设dart2js编译器将所述修改后dill文件编译为初始js文件后,启动预设浏览器并利用ui自动化脚本运行所述初始js文件。

22、可选的,所述函数剔除模块,包括:

23、函数剔除单元,用于在所述预设浏览器运行结束之后,利用所述预设抽象语法树编译器获取到所述初始dill文件,并基于所述方法函数列表将所述初始dill文件中的不包含在所述方法函数列表中的方法函数进行剔除处理以得到目标dill文件。

24、第三方面,本申请公开了一种电子设备,包括:

25、存储器,用于保存计算机程序;

26、处理器,用于执行所述计算机程序以实现前述的js文件生成方法。

27、第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现前述的js文件生成方法。

28、可见,本申请中,首先获取通过flutter框架对源码进行编译后得到的初始dill文件,并利用预设抽象语法树编译器在所述初始dill文件中插入预设方法收集器以得到修改后dill文件;通过所述flutter框架将所述修改后dill文件编译为初始js文件后,启动预设浏览器并通过预设自动化脚本运行所述初始js文件,以便所述预设方法收集器收集在所述初始js文件运行过程中使用过的方法函数并存储至预设方法函数列表中;在所述预设浏览器运行结束之后,将所述初始dill文件中的基于所述预设方法函数列表确定的待剔除方法函数进行剔除处理以得到目标dill文件;通过所述flutter框架将所述目标dill文件进行编译以得到目标js文件。可见,通过插入的预设方法收集器收集初始js文件运行过程中使用过的方法函数并存储到预设方法函数列表中,然后根据所述预设方法函数列表将初始dill文件中的没有使用到的方法函数进行了相应的剔除以得到目标dill文件,根据所述目标dill文件可以得到目标js文件。这样一来,可以根据实际运行场景将flutter web编译产物运行过程中使用不到的代码进行剔除,可以大大降低js文件的大小,且整个过程中不需要人工去删除代码,只需要在得到初始dill文件之后,利用预设浏览器运行所述初始dill文件,就可以自动收集没有使用的方法函数,然后将这些方法函数进行剔除,降低了人工成本。



技术特征:

1.一种js文件生成方法,其特征在于,包括:

2.根据权利要求1所述的js文件生成方法,其特征在于,所述利用预设抽象语法树编译器在所述初始dill文件中插入预设方法收集器以得到修改后dill文件之前,还包括:

3.根据权利要求2所述的js文件生成方法,其特征在于,所述利用预设抽象语法树编译器在所述初始dill文件中插入预设方法收集器以得到修改后dill文件,包括:

4.根据权利要求1所述的js文件生成方法,其特征在于,所述通过所述flutter框架将所述修改后dill文件编译为初始js文件后,启动预设浏览器并通过预设自动化脚本运行所述初始js文件,包括:

5.根据权利要求1至4任一项所述的js文件生成方法,其特征在于,所述在所述预设浏览器运行结束之后,将所述初始dill文件中的基于所述预设方法函数列表确定的待剔除方法函数进行剔除处理以得到目标dill文件,包括:

6.一种js文件生成装置,其特征在于,包括:

7.根据权利要求6所述的js文件生成装置,其特征在于,所述文件运行模块,包括:

8.根据权利要求6所述的js文件生成装置,其特征在于,所述函数剔除模块,包括:

9.一种电子设备,其特征在于,包括:

10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的js文件生成方法。


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

技术研发人员:周毅,刘昌钰,齐翊
受保护的技术使用者:政采云有限公司
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1