[发明专利]一种前端实现多文件编译器的方法在审

专利信息
申请号: 202211037464.0 申请日: 2022-08-26
公开(公告)号: CN115469848A 公开(公告)日: 2022-12-13
发明(设计)人: 何颖 申请(专利权)人: 紫光云技术有限公司
主分类号: G06F8/30 分类号: G06F8/30;G06F8/41
代理公司: 天津企兴智财知识产权代理有限公司 12226 代理人: 石倩倩
地址: 300459 天津市滨海新区*** 国省代码: 天津;12
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 前端 实现 文件 编译器 方法
【说明书】:

发明提供了一种前端实现多文件编译器的方法,包括:解析各文件,确定文件间的依赖关系;基于依赖关系,确定对各文件的编译顺序,形成编译队列;对编译队列上的各文件进行单独隔离,按照编译顺序,前后相邻的文件之间建立引用关系;将编译顺序和各文件编译成可执行程序,组成字符串,供编译使用。本发明所述的前端实现多文件编译器的方法可以编译浏览器无法解析的ES的新特性;可同时实现多文件的编译。

技术领域

本发明属于互联网前端技术领域,尤其是涉及一种前端实现多文件编译器的方法。

背景技术

在前端工程中,我们很多需求都是低代码的场景,比如我们有时候需要在浏览器编译并执行一些代码,还比如我们在搭建时需自定义一部分代码,这些代码需要在渲染时执行。而当我们写ES6、ES7等代码时,要在浏览器执行,就必须经过编译,目前缺少可实现多文件编译器的方法,使这些代码能够在浏览器顺利执行。

发明内容

有鉴于此,为克服上述缺陷,本发明旨在提出一种前端实现多文件编译器的方法。

为达到上述目的,本发明的技术方案是这样实现的:

第一方面,本发明提供了一种前端实现多文件编译器的方法,包括:

解析各文件,确定文件间的依赖关系;

基于依赖关系,确定对各文件的编译顺序,形成编译队列;

对编译队列上的各文件进行单独隔离,按照编译顺序,前后相邻的文件之间建立引用关系;

将编译顺序和各文件编译成可执行程序,组成字符串,供编译使用。

进一步的,解析各文件,确定文件间的依赖关系,包括:

将文件代码编译成AST抽象语法树,分析各文件的import依赖,用哈希表来存储,分析得到的依赖关系按顺序存放到数组里面。

进一步的,对编译队列上的各文件进行单独隔离,按照编译顺序,前后相邻的文件之间建立引用关系,包括:

将每个文件的内容转成一个闭包,使每个文件的变量互不影响;

通过建立接口的方式,使文件间建立引用关系。

进一步的,通过建立接口的方式,使文件间建立引用关系,包括:

创建全局变量对象module,所有文件的引用都将通过module进行,挂载到module对象下,文件在对象module中对应的key值为文件名。

进一步的,将每个文件的内容转成一个闭包时,还需要将ESModule语法处理成浏览器能识别的语法。

进一步的,将编译顺序和各文件编译成可执行程序,组成字符串,供编译使用,包括:

将各文件依赖顺序和文件编译成闭包的方法逐步进行文件编译,将结果直接拼接起来,形成字符串。

第二方面,本发明提供了一种电子设备/服务器,包括处理器,以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,所述处理器在执行所述指令时,实现上述第一方面所述的前端实现多文件编译器的方法。

第三方面,本发明提供了一种可读取存储介质,用于存储计算机程序,所述计算机程序在被处理器执行时,实现上述第一方面所述的前端实现多文件编译器的方法。

相对于现有技术,本发明所述的前端实现多文件编译器的方法具有以下优势:

本发明所述的前端实现多文件编译器的方法可以编译浏览器无法解析的ES的新特性(ES6、ES7等);可同时实现多文件的编译

附图说明

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于紫光云技术有限公司,未经紫光云技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202211037464.0/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top