[发明专利]基于Javascript的代码打包方法、装置及介质在审
申请号: | 201910748629.7 | 申请日: | 2019-08-14 |
公开(公告)号: | CN110597547A | 公开(公告)日: | 2019-12-20 |
发明(设计)人: | 龙腾飞 | 申请(专利权)人: | 平安国际智慧城市科技股份有限公司 |
主分类号: | G06F8/70 | 分类号: | G06F8/70;G06F8/41 |
代理公司: | 11327 北京鸿元知识产权代理有限公司 | 代理人: | 李玉琦;曹素云 |
地址: | 518000 广东省深圳市前海深港合*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 待打包文件 引用项 字段 原始函数 打包 读取 打包文件 对比结果 方法调用 用户体验 试运行 完整度 加载 网页 指向 保证 保留 | ||
本发明涉及一种基于Javascript的代码打包方法、装置及介质,其中,基于Javascript的代码打包方法,包括:指向待打包文件的js文件引用项并获取js文件引用项对应的值、判断js文件引用项对应的值中是否包括相同的字段,若是,则从相同的字段中保留一个字段、试运行待打包文件,以使得方法调用栈中保留待打包文件中的所有被执行的函数的名称、读取待打包文件中的所有原始函数名称、将所有原始函数名称与所有被执行的函数的名称作对比并生成对比结果等步骤。本发明在保证待打包文件的代码的高完整度情况下缩小保证待打包文件的代码体积,进而提供待打包文件在网页中的被加载速度,从而让提高用户体验。
技术领域
本发明涉及计算机技术领域,具体而言,本发明涉及一种基于Javascript的代码打包方法、装置及介质。
背景技术
目前的js打包工具都是基于模块化的,并未对模块内的引用作特别的处理,因此,当众多模块一起打包的时候,很多模块内的引用会大概率出现重复出现的情况,导致打包了很多冗余的代码,导致代码体积变大,导致页面加载变慢,影响页面性能。
发明内容
本发明针对现有方式的缺点,提出了一种基于Javascript的代码打包方法、装置及介质。
为解决上述技术问题,本发明第一方面提供基于Javascript的代码打包方法,该方法包括:
指向待打包文件的js文件引用项并获取所述js文件引用项对应的值;
判断所述js文件引用项对应的值中是否包括相同的字段,若是,则从相同的字段中保留一个字段;
试运行所述待打包文件,以使得方法调用栈中保留所述待打包文件中的所有被执行的函数的名称;
读取待打包文件中的所有原始函数名称;
将所述所有原始函数名称与所述所有被执行的函数的名称作对比并生成对比结果;
基于所述对比结果,从所述所有原始函数名称中筛选出除所有被执行的函数的名称之外的函数名称;
将所述除所有被执行的函数的名称之外的函数名称对应的函数代码删除,并生成整合后的打包文件。
作为一种可选的实施方式,在所述生成整合后的打包文件之后,所述方法还包括:
使用编译器编译所述整合后的打包文件;
获取编译器编译所述整合后的打包文件所产生的编译信息;
根据所述编译信息判断所述整合后的打包文件是否通过编译,若是,则生成整合成功提示并生成可发布文件,若不是,则生成整合失败提示,其中,所述整合失败提示包括出错代对应的报错信息。
作为一种可选的实施方式,在所述使用编译器编译所述整合后的打包文件之前,所述方法还包括:
获取编译镜像文件,应用所述编译镜像文件创建一个编译器,在所述编译器的配置文件中设置所述整合后的打包文件的编辑配置信息、所述整合后的打包文件的项目属性信息、所述整合后的打包文件的打包配置信息;
以及,所述使用编译器编译所述整合后的打包文件,包括:
根据所述编译器的配置文件,使用编译器编译所述整合后的打包文件。
作为一种可选的实施方式,所述整合后的打包文件的项目属性信息包括项目名称、版本信息、代码仓库或者依赖项目中的至少一个。
作为一种可选的实施方式,所述整合后的打包文件的编辑配置信息包括设定编译指令、执行条件、执行目标或者编译参数中的至少一个。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于平安国际智慧城市科技股份有限公司,未经平安国际智慧城市科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910748629.7/2.html,转载请声明来源钻瓜专利网。