掌桥专利:专业的专利平台
掌桥专利
首页

文件转换方法、装置、设备和介质

文献发布时间:2023-06-19 12:13:22


文件转换方法、装置、设备和介质

技术领域

本申请涉及计算机技术领域,尤其涉及一种文件转换方法、装置、设备和介质。

背景技术

目前,很多前端项目中会使用Sass(Syntactically Awesome Stylesheets,层叠样式表语言)作为层叠样式表(Cascading Style Sheets,简称CSS)的预处理器,但在Sass的使用过程中经常会遇到下载NPM(Node Package Manager,节点包管理器)依赖包报错的情况,严重影响日常的开发效率,而另一种CSS预处理器Less,有着和Sass相同的功能,但不存在上述问题,所以就产生了将Sass转换到Less的需求。

相关技术中,前端开发人员需要手动将Sass转换为Less,手动转换要做大量的重复性工作,耗费较长的时间,也容易造成遗漏和错误。

发明内容

本申请提出一种文件转换方法、装置、设备和介质。

本申请第一方面实施例提出了一种文件转换方法,包括:从预设目录下识别出目标文件;对所述目标文件中的文件内容进行第一语法到第二语法的转换,得到转换后的文件内容;将所述转换后的文件内容回写到所述目标文件中。

本申请实施例的文件转换方法,从预设目录下识别出目标文件,对目标文件中的文件内容进行第一语法到第二语法的转换,得到转换后的文件内容,再将转换后的文件内容回写到所述目标文件中。本实施例中,通过自动扫描预设目录下的所有文件,能够自动识别需要转换的目标文件并进行自动转换,减少了重复性的工作,耗费时间较短,且不容易造成遗漏和错误。

本申请第二方面实施例提出一种文件转换装置,包括:识别模块,被配置为从预设目录下识别出目标文件;转换模块,被配置为对所述目标文件中的文件内容进行第一语法到第二语法的转换,得到转换后的文件内容;回写模块,被配置为将所述转换后的文件内容回写到所述目标文件中。

本申请实施例的文件转换装置,从预设目录下识别出目标文件,对目标文件中的文件内容进行第一语法到第二语法的转换,得到转换后的文件内容,再将转换后的文件内容回写到所述目标文件中。本实施例中,通过自动扫描预设目录下的所有文件,能够自动识别需要转换的目标文件并进行自动转换,减少了重复性的工作,耗费时间较短,且不容易造成遗漏和错误。

本申请第三方面实施例提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述第一方面实施例所述的文件转换方法。

本申请第四方面实施例提出了一种存储有计算机指令的计算机可读存储介质,所述计算机指令用于使所述计算机执行如上述第一方面实施例所述的文件转换方法。

本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本申请一实施例提供的文件转换方法的流程示意图;

图2为本申请另一实施例提供的文件转换方法的流程示意图;

图3为本申请另一实施例提供的文件转换方法的流程示意图;

图4为本申请另一实施例提供的文件转换方法的流程示意图;

图5为本申请另一实施例提供的文件转换方法的流程示意图;

图6为本申请一实施例提供的文件转换装置的结构示意图;

图7为本申请一实施例提供的电子设备的结构示意图。

具体实施方式

下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。

在本申请的描述中,术语“CSS”是一种用来表现HTML(Hyper Text MarkupLanguage,超级文本标记语言)或XML(eXtended Markup Language,可扩展标记语言)等文件样式的计算机语言。

在本申请的描述中,术语“Sass”是一种CSS的预编译语言。它提供了变量、嵌套、混合、函数等功能,并且完全兼容CSS语法。

在本申请的描述中,术语“Less”是一门CSS预处理语言,它扩展了CSS语言,增加了变量、Mixin、函数等特性,使CSS更易维护和扩展。

在本申请的描述中,术语“JavaScript”是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。

在本申请的描述中,术语“NPM”是JavaScript世界的包管理工具,并且是Node.js平台的默认包管理工具。通过NPM可以安装、共享、分发代码,管理项目依赖关系。

在本申请的描述中,术语“Node.js”是一个基于Chrome V8引擎的JavaScript运行环境。Node.js使用了一个事件驱动、非阻塞式I/O(Input/Output,输入/输出)的模型,使其轻量又高效。

在本申请的描述中,术语“Cheerio”是Node.js的抓取页面模块,为服务器特别定制的,快速、灵活、实施的jQuery核心实现。适合各种Web(网页)爬虫程序。

在本申请的描述中,术语“DOM”(Document Object Model,文档对象模型)是W3C(World Wide Web Consortium,万维网联盟)组织推荐的处理可扩展置标语言的标准编程接口。它是一种与平台和语言无关的应用程序接口(Application ProgrammingInterface,简称API),它可以动态地访问程序和脚本,更新其内容、结构和www文档的风格。

在本申请的描述中,术语“正则表达式”描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

下面参考附图描述本申请实施例的文件转换方法、装置、设备和介质。

图1为本申请一实施例提供的文件转换方法的流程示意图。本申请实施例的文件转换方法,可由本申请实施例提供的文件转换装置执行,该文件转换装置可设置于转换器中。如图1所示,本申请实施例的文件转换方法具体可包括以下步骤:

S101,从预设目录下识别出目标文件。

具体的,本申请实施例的文件转换方法是将目标文件中的文件内容进行第一语法到第二语法的转换,以第一语法为sass语法,第二语法为less语法为例,目标文件可以为sass文件或vue文件。开始进行文件转换后,转换器例如sass2less转换器遍历预设目录例如dirPath目录下的所有文件,具体可通过node.js的fs.readdirSync方法递归遍历预设目录下的所有文件,判断每个文件的类型,从中识别出需要进行转换的文件即识别出目标文件。

S102,对目标文件中的文件内容进行第一语法到第二语法的转换,得到转换后的文件内容。

具体的,转换器中可以预设有使用正则表达式,例如JavaScript正则表达式定义的第一语法到第二语法的转换规则,例如sass语法到less语法的转换规则。转换器可以通过node.js的fs.readFileSync方法获取到目标文件中的文件内容,并对目标文件中的文件内容,根据预先设定好的转换器的转换规则进行第一语法到第二语法的转换,得到转换后的文件内容。

S103,将转换后的文件内容回写到目标文件中。

具体的,转换器可以通过node.js的fs.writeFileSync方法将转换后的文件内容回写到对应的目标文件中,完成目标文件的语法转换。

本申请实施例的文件转换方法,从预设目录下识别出目标文件,对目标文件中的文件内容进行第一语法到第二语法的转换,得到转换后的文件内容,再将转换后的文件内容回写到目标文件中。本实施例中,通过JavaScript正则表达式预设文件转换规则,通过Node.js自动扫描指定目录下的所有文件,能够识别需要转换的文件并进行自动转换,减少了重复性的工作,耗费时间较短,不容易造成遗漏和错误。

图2为本申请另一实施例提供的文件转换方法的流程示意图。如图2所示,在上述图1所示实施例的基础上,步骤S101具体可包括:

S201,获取文件转换指令。

具体的,当需要开始文件转换时,可以获取输入的文件转换指令,文件转换指令中可以包括转换器的类型和待转换的目标文件所在的目录即预设目录,例如文件转换指令可以为sass2less,则使用预先设定好的sass2less转换器执行文件转换过程。

S202,根据文件转换指令从预设目录下识别出目标文件。

具体的,根据文件转换指令从预设目录下,例如根据文件转换指令sass2less从预设目录dirPath下识别出目标文件。

作为一种可行的实施方式,上述步骤S202中的“从预设目录下识别出目标文件”可包括以下步骤:获取预设目录下文件的文件名;根据文件名中的后缀识别文件是否为目标文件。

具体的,转换器可以通过node.js的path.extname方法获取预设目录下文件的文件名,判断文件名后缀是不是sass或vue,如果是则该文件需要进行转换,将该文件确定为目标文件。

本申请实施例的文件转换方法,从预设目录下根据文件名中的后缀识别出目标文件,对目标文件中的文件内容进行第一语法到第二语法的转换,得到转换后的文件内容,再将转换后的文件内容回写到目标文件中。本实施例中,通过自动扫描预设目录下的所有文件,能够自动识别需要转换的目标文件并进行自动转换,减少了重复性的工作,耗费时间较短,且不容易造成遗漏和错误。根据文件名中的后缀识别文件是否为目标文件,可以快速、准确的实现目标文件的识别,提高转换效率。

图3为本申请另一实施例提供的文件转换方法的流程示意图。如图3所示,在上述图1所示实施例的基础上,当目标文件为sass文件时,步骤S102具体可包括:

S301,获取预设的sass语法匹配规则和预设的less语法替换规则。

具体的,可以使用JavaScript正则表达式,预先针对各种sass语法分别定义各种sass语法对应的语法匹配规则,针对各种less语法分别定义各种less语法对应的语法替换规则。

S302,根据sass语法匹配规则在目标文件中的文件内容中确定匹配的目标sass语法。

具体的,可以通过JavaScript的replace方法,基于步骤S301获取到的预设的sass语法匹配规则,在目标文件中的文件内容中确定匹配的目标sass语法。

S303,根据less语法替换规则将目标sass语法替换为目标less语法,得到转换后的文件内容。

具体的,可以通过JavaScript的replace方法,基于步骤S301获取到的less语法替换规则,将步骤S302中匹配到的目标sass语法替换成对应的目标less语法,得到转换后的文件内容。

本申请实施例的文件转换方法,从预设目录下识别出目标文件,基于预设的sass语法匹配规则和预设的less语法替换规则,对目标文件中的文件内容进行第一语法到第二语法的转换,得到转换后的文件内容,再将转换后的文件内容回写到目标文件中。本实施例中,通过自动扫描预设目录下的所有文件,能够自动识别需要转换的目标文件并进行自动转换,减少了重复性的工作,耗费时间较短,且不容易造成遗漏和错误。基于预设的sass语法匹配规则和预设的less语法替换规则,可以快速、准确的实现sass文件中目标sass语法的匹配和目标less语法的替换,提高了转换效率。

图4为本申请另一实施例提供的文件转换方法的流程示意图。如图4所示,在上述图1所示实施例的基础上,当目标文件为vue文件时,步骤S102具体可包括:

S401,获取预设的sass语法匹配规则和预设的less语法替换规则。

具体的,可以使用JavaScript正则表达式,预先针对各种sass语法分别定义各种sass语法对应的语法匹配规则,针对各种less语法分别定义各种less语法对应的语法替换规则。

S402,将目标文件中的文件内容转换为文档对象模型。

具体的,转换器可以通过cheerio的load方法加载目标文件中的文件内容,并将目标文件中的文件内容转换成文档对象模型即dom对象。

S403,从文档对象模型中获取样式节点内容。

具体的,转换器可以通过cheerio的节点选择器功能从dom对象中获取到style(样式)节点内容。

S404,根据sass语法匹配规则在样式节点内容中确定匹配的目标sass语法。

具体的,可以通过JavaScript的replace方法,基于步骤S401获取到的预设的sass语法匹配规则,在样式节点内容中确定匹配的目标sass语法。

S405,根据less语法替换规则将目标sass语法替换为目标less语法,得到转换后的文件内容。

具体的,可以通过JavaScript的replace方法,基于步骤S401获取到的less语法替换规则将步骤S402中匹配到的目标sass语法替换成对应的目标less语法,得到转换后的文件内容。

本申请实施例的文件转换方法,从预设目录下识别出目标文件,对目标文件中的文件内容进行第一语法到第二语法的转换,得到转换后的文件内容,再将转换后的文件内容回写到目标文件中。本实施例中,通过自动扫描预设目录下的所有文件,能够自动识别需要转换的目标文件并进行自动转换,减少了重复性的工作,耗费时间较短,且不容易造成遗漏和错误。基于预设的sass语法匹配规则和预设的less语法替换规则,可以快速、准确的实现vue文件中目标sass语法的匹配和目标less语法的替换,提高了转换效率。

为清楚说明本申请实施例的文件转换方法,下面结合图5对本申请实施例的文件转换方法进行详细描述。如图5所示,本申请实施例的文件转换方法具体可包括以下步骤:

S501,开始转换。

S502,获取文件转换指令。

S503,根据文件转换指令遍历预设目录下的所有文件,并获取预设目录下文件的文件名。

S504,根据文件名中的后缀识别文件是否为目标文件。

若目标文件为sass文件,则执行步骤S505~S506。若目标文件为vue文件,则执行步骤S508~S510。

S505,获取预设的sass语法匹配规则和预设的less语法替换规则。

S506,根据sass语法匹配规则在目标文件中的文件内容中确定匹配的目标sass语法。继续执行步骤S511。

S507,获取预设的sass语法匹配规则和预设的less语法替换规则。

S508,将目标文件中的文件内容转换为文档对象模型。

S509,从文档对象模型中获取样式节点内容。

S510,根据sass语法匹配规则在样式节点内容中确定匹配的目标sass语法。继续执行步骤S511。

S511,根据less语法替换规则将目标sass语法替换为目标less语法,得到转换后的文件内容。

S512,将转换后的文件内容回写到目标文件中。

S513,转换完成。

为了实现上述实施例,本申请实施例还提出一种文件转换装置。图6为本申请一实施例的文件转换装置的结构示意图。如图6所示,本申请实施例的文件转换装置600具体可包括:识别模块601、转换模块602和回写模块603。

识别模块601,被配置为从预设目录下识别出目标文件。

转换模块602,被配置为对目标文件中的文件内容进行第一语法到第二语法的转换,得到转换后的文件内容。

回写模块603,被配置为将转换后的文件内容回写到目标文件中。

在本申请的一个实施例中,识别模块601具体可包括:第一获取单元,被配置为获取文件转换指令;第一识别单元,被配置为根据文件转换指令从预设目录下识别出目标文件。

在本申请的一个实施例中,识别模块601具体可包括:第二获取单元,被配置为获取预设目录下文件的文件名;第二识别单元,被配置为根据文件名中的后缀识别文件是否为目标文件。

在本申请的一个实施例中,第一语法为sass语法,第二语法为less语法,目标文件为sass文件或vue文件。

在本申请的一个实施例中,目标文件为sass文件,转换模块602具体可包括:第三获取单元,被配置为获取预设的sass语法匹配规则和预设的less语法替换规则;第一确定单元,被配置为根据sass语法匹配规则在目标文件中的文件内容中确定匹配的目标sass语法;第一替换单元,被配置为根据less语法替换规则将目标sass语法替换为目标less语法,得到转换后的文件内容。

在本申请的一个实施例中,目标文件为vue文件,转换模块602具体可包括:第四获取单元,被配置为获取预设的sass语法匹配规则和预设的less语法替换规则;转换单元,被配置为将目标文件中的文件内容转换为文档对象模型;第五获取单元,被配置为从文档对象模型中获取样式节点内容;第二确定单元,被配置为根据sass语法匹配规则在样式节点内容中确定匹配的目标sass语法;第二替换单元,被配置为根据less语法替换规则将目标sass语法替换为目标less语法,得到转换后的文件内容。

本申请实施例的文件转换装置,从预设目录下识别出目标文件,对目标文件中的文件内容进行第一语法到第二语法的转换,得到转换后的文件内容,再将转换后的文件内容回写到目标文件中。本实施例中,通过自动扫描预设目录下的所有文件,能够自动识别需要转换的目标文件并进行自动转换,减少了重复性的工作,耗费时间较短,且不容易造成遗漏和错误。根据文件名中的后缀识别文件是否为目标文件,可以快速、准确的实现目标文件的识别,提高转换效率。基于预设的sass语法匹配规则和预设的less语法替换规则,可以快速、准确的实现sass、vue文件中目标sass语法的匹配和目标less语法的替换,提高了转换效率。

根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。

如图7所示,是根据本申请实施例的文件转换方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,智能语音交互设备、个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图7所示,该电子设备包括:一个或多个处理器701、存储器702,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器701可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器701为例。

存储器702即为本申请所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本申请所提供的文件转换方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的文件转换方法。

存储器702作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的文件转换方法对应的程序指令/模块(例如,附图6所示的识别模块601、转换模块602和回写模块603)。处理器701通过运行存储在存储器702中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的文件转换方法。

存储器702可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据风险控制方法的电子设备的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器702可选包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至风险控制方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

文件转换方法的电子设备还可以包括:输入装置703和输出装置704。处理器701、存储器702、输入装置703和输出装置704可以通过总线或者其他方式连接,图7中以通过总线连接为例。

输入装置703可接收输入的数字或字符信息,以及产生与文件转换方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置704可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。

此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。

在本说明书的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

相关技术
  • 文件转换方法、文件转换装置、存储介质及电子设备
  • 布局文件的转换方法、装置、电子设备及存储介质
技术分类

06120113212724