一种基于运行环境的打包方法、系统、设备及介质技术方案

技术编号:39274039 阅读:14 留言:0更新日期:2023-11-07 10:52
本发明专利技术公开了一种基于运行环境的打包方法、系统、设备及介质。方法包括:在打包工具的配置文件中注册环境变量,预先构建过滤插件并将其添加至配置文件;响应于打包工具基于配置文件对目标代码进行打包操作,在过滤插件中逐行拦截并解析目标代码,保留目标代码中与环境变量匹配的若干目标代码块;在打包工具中打包所有目标代码块。通过本发明专利技术的方案,有效缩减了应用的打包体积,提升了应用性能和响应速度,并且有助于防止恶意代码攻击,保证产品的安全性和稳定性。安全性和稳定性。安全性和稳定性。

【技术实现步骤摘要】
一种基于运行环境的打包方法、系统、设备及介质


[0001]本专利技术涉及信息安全
,尤其涉及一种基于运行环境的打包方法、系统、设备及介质。

技术介绍

[0002]静态模块打包器(Webpack)和前端构建工具(Vite)等构建工具是前端开发中不可或缺的开发工具,能够用于处理项目的打包、编译和压缩等任务。在前端开发过程中,经常需要构建工具针对不同的运行环境对代码进行不同的处理,而相关技术中利用构建工具进行项目打包时,存在打包效率低、安全性不高以及项目打包后空间占用率大的问题。

技术实现思路

[0003]有鉴于此,本专利技术提出了一种基于运行环境的打包方法、系统、设备及介质,解决了应用打包时出现的打包效率低、打包体积大、响应速度慢、安全性低等问题,在编译阶段有效缩减了应用的打包体积,减少了应用的加载时间,提升了应用性能和响应速度,并且有助于防止恶意代码攻击,保证产品的安全性和稳定性。
[0004]基于上述目的,本专利技术实施例的一方面提供了一种基于运行环境的打包方法,具体包括如下步骤:
[0005]在打包工具的配置文件中注册环境变量,预先构建过滤插件并将其添加至所述配置文件;
[0006]响应于所述打包工具基于所述配置文件对目标代码进行打包操作,在所述过滤插件中逐行拦截并解析所述目标代码,保留所述目标代码中与所述环境变量匹配的若干目标代码块;
[0007]在所述打包工具中打包所有目标代码块。
[0008]在一些实施方式中,预先构建过滤插件的步骤,包括:
>[0009]设置开始关键字和结束关键字以构建过滤插件。
[0010]在一些实施方式中,所述响应于所述打包工具基于所述配置文件对目标代码进行打包操作,在所述过滤插件中逐行拦截并解析所述目标代码,保留所述目标代码中与所述环境变量匹配的若干目标代码块的步骤,包括:
[0011]响应于所述打包工具对目标代码进行打包操作,初始化所述过滤插件,并将所述环境变量传入初始化后的过滤插件以得到目标过滤插件;
[0012]获取所述目标过滤插件对应的切面函数,根据切面函数在所述目标代码中设置关键字,其中所述关键字包括开始关键字和结束关键字;
[0013]在所述目标过滤插件中逐行拦截设置关键字后的目标代码,查询与所述开始关键字及所述环境变量均匹配的各第一代码行,并分别查询各第一代码行之后第一个与所述结束关键字匹配的各第二代码行;
[0014]针对每个第一代码行和其后的第一个第二代码行,保留所述第一代码行与所述第
二代码行之间的所有代码行以获取目标代码块。
[0015]在一些实施方式中,所述在所述目标过滤插件中逐行拦截设置关键字后的目标代码,查询与所述开始关键字及所述环境变量均匹配的各第一代码行,并分别查询各第一代码行之后第一个与所述结束关键字匹配的各第二代码行的步骤,包括:
[0016]在所述目标过滤插件中逐行拦截设置关键字后的目标代码的代码行,以查询开头代码与所述开始关键字匹配的各条件代码行;
[0017]顺序解析每个所述条件代码行,以确定所述条件代码行中条件字段的名称和条件字段的字段值;
[0018]在所述环境变量中查询名称与所述条件字段的名称相同的目标条件字段,确定所述目标条件字段的目标字段值是否与所述条件字段的字段值相同;
[0019]若所述目标字段值与所述条件字段的字段值相同,确定所述条件代码行为与所述环境变量匹配的第一代码行;
[0020]响应于确定所述第一代码行,在所述目标过滤插件中再次逐行拦截所述第一代码行之后的各代码行,以查询第一个在所述第一代码行之后且结尾代码与所述结束关键字匹配的第二代码行。
[0021]在一些实施方式中,其特征在于,还包括:
[0022]若存在条件代码行的条件字段的字段值与所述目标字段值不相同,在所述目标过滤插件中再次逐行拦截所述条件代码行之后的各代码行,并判断各所述条件代码行之后的代码行的开头代码是否与所述结束关键字匹配;
[0023]若所述条件代码行之后的代码行的开头代码与所述结束关键字不匹配,在所述目标过滤插件中移除所述条件代码行之后的代码行;
[0024]若所述条件代码行之后的代码行的结尾代码与所述结束关键字匹配,确定所述目标过滤插件移除与所述环境变量不匹配的代码块。
[0025]在一些实施方式中,所述针对每个第一代码行和其后的第一个第二代码行,保留所述第一代码行与所述第二代码行之间的所有代码行以获取目标代码块的步骤,包括:
[0026]响应于确定所述第一代码行,在所述目标过滤插件中再次逐行拦截所述第一代码行之后的各代码行,并依次保留所述第一代码行之后被拦截代码行中开头代码与所述结束关键字不匹配的代码行;
[0027]响应于所述目标过滤插件拦截到所述第一代码行之后第一个与所述结束关键字匹配的第二代码行,确定所述目标过滤插件中保留的所有代码行为目标代码块。
[0028]在一些实施方式中,所述在所述打包工具中打包所有目标代码块的步骤,包括:
[0029]响应于所述过滤插件拦截至所述目标代码中最后一个代码行,在所述打包工具中打包所有目标代码块,确定完成打包操作。
[0030]本专利技术实施例的另一方面,还提供了一种基于运行环境的打包系统,包括:
[0031]配置单元,用于在打包工具的配置文件中注册环境变量,预先构建过滤插件并将其添加至所述配置文件;
[0032]处理单元,用于响应于所述打包工具基于所述配置文件对目标代码进行打包操作,在所述过滤插件中逐行拦截并解析所述目标代码,保留所述目标代码中与所述环境变量匹配的若干目标代码块;
[0033]打包单元,用于在所述打包工具中打包所有目标代码块。
[0034]本专利技术实施例的又一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机程序,所述计算机程序由所述处理器执行时实现如上方法的步骤。
[0035]本专利技术实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
[0036]本专利技术至少具有以下有益技术效果:
[0037](1)优化打包过程。在项目打包时,通过过滤插件在目标代码中设置关键字,并判断设置关键字后的目标代码中关键字所包裹的代码块是否符合当前配置文件中的环境变量,移除不符合环境变量的代码块,保留符合环境变量的目标代码块,能够有效减少应用打包的体积和加载时间,提高了应用的性能和响应速度。
[0038](2)提高打包安全性。对于不符合当前配置文件中环境变量的代码块进行移除,避免了应用在运行态进行多产品或多环境的逻辑判断,有助于防止恶意代码的注入和攻击,保证了应用的安全性和稳定性。
[0039](3)定制化输出。对于单实例多产品形式的项目,即同一套代码应用于多套产品的情况,通过在构建工具的配置文件中配置产品的环境变量,有助于在编本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于运行环境的打包方法,其特征在于,包括:在打包工具的配置文件中注册环境变量,预先构建过滤插件并将其添加至所述配置文件;响应于所述打包工具基于所述配置文件对目标代码进行打包操作,在所述过滤插件中逐行拦截并解析所述目标代码,保留所述目标代码中与所述环境变量匹配的若干目标代码块;在所述打包工具中打包所有目标代码块。2.根据权利要求1所述的方法,其特征在于,预先构建过滤插件的步骤,包括:设置开始关键字和结束关键字以构建过滤插件。3.根据权利要求1所述的方法,其特征在于,所述响应于所述打包工具基于所述配置文件对目标代码进行打包操作,在所述过滤插件中逐行拦截并解析所述目标代码,保留所述目标代码中与所述环境变量匹配的若干目标代码块的步骤,包括:响应于所述打包工具基于所述配置文件对目标代码进行打包操作,初始化所述过滤插件,并将所述环境变量传入初始化后的过滤插件以得到目标过滤插件;获取所述目标过滤插件对应的切面函数,根据切面函数在所述目标代码中设置关键字,其中所述关键字包括开始关键字和结束关键字;在所述目标过滤插件中逐行拦截并解析设置关键字后的目标代码,查询与所述开始关键字及所述环境变量均匹配的各第一代码行,并查询各第一代码行之后第一个与所述结束关键字匹配的各第二代码行;针对每个第一代码行和其后的第一个第二代码行,保留所述第一代码行与所述第二代码行之间的所有代码行以获取目标代码块。4.根据权利要求3所述的方法,其特征在于,所述在所述目标过滤插件中逐行拦截设置关键字后的目标代码,查询与所述开始关键字及所述环境变量均匹配的各第一代码行,并分别查询各第一代码行之后第一个与所述结束关键字匹配的各第二代码行的步骤,包括:在所述目标过滤插件中逐行拦截设置关键字后的目标代码的代码行,以查询开头代码与所述开始关键字匹配的各条件代码行;顺序解析每个所述条件代码行,以确定所述条件代码行中条件字段的名称和条件字段的字段值;在所述环境变量中查询名称与所述条件字段的名称相同的目标条件字段,确定所述目标条件字段的目标字段值是否与所述条件字段的字段值相同;若所述目标字段值与所述条件字段的字段值相同,确定所述条件代码行为与所述环境变量匹配的第一代码行;响应于确定所述第一代码行,在所述目标过滤插件中再次逐行拦截所述第一代码行之后的各代码行,以查询第一个...

【专利技术属性】
技术研发人员:张怀祥朱道昌潘建峰
申请(专利权)人:济南浪潮数据技术有限公司
类型:发明
国别省市:

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

1