CN116954699A - 前端工程的依赖检测处理方法及装置 - Google Patents
前端工程的依赖检测处理方法及装置 Download PDFInfo
- Publication number
- CN116954699A CN116954699A CN202310971965.4A CN202310971965A CN116954699A CN 116954699 A CN116954699 A CN 116954699A CN 202310971965 A CN202310971965 A CN 202310971965A CN 116954699 A CN116954699 A CN 116954699A
- Authority
- CN
- China
- Prior art keywords
- dependency
- uninstalled
- preset
- end engineering
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 52
- 238000003672 processing method Methods 0.000 title claims abstract description 24
- 238000009434 installation Methods 0.000 claims abstract description 108
- 230000001419 dependent effect Effects 0.000 claims abstract description 62
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000012545 processing Methods 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 27
- 238000011161 development Methods 0.000 claims description 17
- 238000004519 manufacturing process Methods 0.000 claims description 15
- 230000004048 modification Effects 0.000 claims description 7
- 238000012986 modification Methods 0.000 claims description 7
- 238000012937 correction Methods 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Library & Information Science (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种前端工程的依赖检测处理方法及装置,涉及移动互联领域,该方法包括:在确定前端工程项目第一根目录下存在依赖配置文件时,从配置文件中读取每一依赖信息,循环遍历每一依赖信息存储至预设依赖暂存数组中;在确定前端工程项目第二根目录下存在依赖安装文件夹时,循环遍历预设依赖暂存数组执行判断每一依赖是否安装的步骤:从预设依赖存储数组中获取当前依赖信息;在判断依赖安装文件夹中不存在当前依赖安装文件夹时,将当前依赖信息存入至未安装依赖数组中;循环遍历预设未安装依赖数组中的每一未安装依赖,安装未安装依赖。本发明可以实现自动检查前端工程依赖,安装前端工程未安装的依赖,确保前端工程运行的安全性和稳定性。
Description
技术领域
本发明涉及移动互联技术领域,尤其涉及一种前端工程的依赖检测处理方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
前端工程的依赖指的是前端项目中所依赖的第三方库、插件、框架等。在前端开发中,工作人员通常会使用一些第三方库、插件或框架来提高开发效率和代码质量,这些库、插件或框架就是前端工程的依赖。
目前,如果前端工程缺少依赖,可能会导致以下问题:编译错误:如果缺少必要的依赖,可能会导致编译错误,从而无法正常编译和运行项目。功能缺失:如果缺少某些依赖,可能会导致项目中某些功能无法正常使用。如果缺少安全相关的依赖,可能会导致项目存在安全漏洞。因此,在开发前端项目时,工作人员需要仔细管理和维护项目的依赖,确保项目能够正常编译和运行,并且能够保证项目的安全性和稳定性。
发明内容
本发明实施例提供一种前端工程的依赖检测处理方法,用以实现自动检查前端工程依赖,安装前端工程未安装的依赖,确保前端工程运行的安全性和稳定性,该方法包括:
在确定前端工程项目第一根目录下存在依赖配置文件时,从依赖配置文件中读取前端工程的每一依赖信息,循环遍历每一依赖信息,将每一依赖信息存储至预设依赖暂存数组中;
在确定前端工程项目第二根目录下存在依赖安装文件夹时,循环遍历预设依赖暂存数组执行判断预设依赖暂存数组中每一依赖是否安装的步骤,每一循环周期均执行以下操作:
从预设依赖存储数组中获取当前依赖信息;
在判断依赖安装文件夹中不存在当前依赖信息对应的安装文件夹时,将当前依赖信息作为未安装依赖存入至预设未安装依赖数组中;
循环遍历预设未安装依赖数组中的每一未安装依赖,使用预配置的安装方式,安装所述每一未安装依赖。
在一个实施例中,每一循环周期还包括如下步骤:
在判断依赖安装文件夹中存在当前依赖信息对应的安装文件夹时,判断当前依赖信息对应的安装文件夹中是否存在当前依赖信息的安装文件;
在判断当前依赖信息对应的安装文件夹中不存在当前依赖信息的安装文件时,将当前依赖信息作为未安装依赖存入至预设未安装依赖数组中。
在一个实施例中,每一循环周期还包括如下步骤:
在判断当前依赖信息对应的安装文件夹中存在当前依赖信息的安装文件时,表明当前依赖已安装。
在一个实施例中,上述前端工程的依赖检测处理方法还可以包括:在确定前端工程项目第一根目录下不存在依赖配置文件时,发出依赖异常提示。
在一个实施例中,上述前端工程的依赖检测处理方法还可以包括:在确定前端工程项目第二根目录下不存在依赖安装文件夹时,发出依赖异常提示。
在一个实施例中,所述依赖配置文件为package.json文件;从依赖配置文件中读取前端工程的每一依赖信息,包括:
使用预设依赖读取模块读取package.json文件;
使用预设依赖解析方法将package.json文件解析为JavaScript对象;
通过访问JavaScript对象中预设依赖字段的方式来读取前端工程的每一依赖信息。
在一个实施例中,使用预设依赖读取模块读取package.json文件,包括:使用Node.js的fs模块读取package.json文件。
在一个实施例中,使用预设依赖解析方法将package.json文件解析为JavaScript对象,包括:使用JSON.parse方法将package.json文件解析为JavaScript对象。
在一个实施例中,所述依赖包括生产依赖和开发依赖。
在一个实施例中,使用预配置的安装方式,安装所述每一未安装依赖,包括:使用npminstall命令或yarn命令安装所述每一未安装依赖。
在一个实施例中,所述依赖信息包括:依赖名称和依赖版本信息。
在一个实施例中,前端工程的依赖的版本规则遵循语义化版本控制规范。
在一个实施例中,所述语义化版本控制规范为主版本号、次版本号及修订号的组合;主版本号为当进行了不兼容的API修改时,需要更新主版本号的指示;次版本号为当进行了向下兼容的功能性新增时,需要更新次版本号的指示;修订号为当进行了向下兼容的问题修正时,需要更新修订号的指示。
在一个实施例中,上述前端工程的依赖检测处理方法还可以包括:
将预设未安装依赖数组值写入至未安装依赖配置文件中;所述未安装依赖配置文件用于供用户查看未安装的依赖。
在一个实施例中,上述前端工程的依赖检测处理方法还可以包括:接收用户配置的未安装依赖配置文件的文件名。
本发明实施例还提供一种前端工程的依赖检测处理装置,用以自动检查前端工程依赖,安装前端工程未安装的依赖,确保前端工程运行的安全性和稳定性,该装置包括:
获取单元,用于在确定前端工程项目第一根目录下存在依赖配置文件时,从依赖配置文件中读取前端工程的每一依赖信息,循环遍历每一依赖信息,将每一依赖信息存储至预设依赖暂存数组中;
检测单元,用于在确定前端工程项目第二根目录下存在依赖安装文件夹时,循环遍历预设依赖暂存数组执行判断预设依赖暂存数组中每一依赖是否安装的步骤,每一循环周期均执行以下操作:
从预设依赖存储数组中获取当前依赖信息;
在判断依赖安装文件夹中不存在当前依赖信息对应的安装文件夹时,将当前依赖信息作为未安装依赖存入至预设未安装依赖数组中;
安装处理单元,用于循环遍历预设未安装依赖数组中的每一未安装依赖,使用预配置的安装方式,安装所述每一未安装依赖。
在一个实施例中,所述检测单元还用于:
在判断依赖安装文件夹中存在当前依赖信息对应的安装文件夹时,判断当前依赖信息对应的安装文件夹中是否存在当前依赖信息的安装文件;
在判断当前依赖信息对应的安装文件夹中不存在当前依赖信息的安装文件时,将当前依赖信息作为未安装依赖存入至预设未安装依赖数组中。
在一个实施例中,所述检测单元还用于:在判断当前依赖信息对应的安装文件夹中存在当前依赖信息的安装文件时,表明当前依赖已安装。
在一个实施例中,所述获取单元还用于:在确定前端工程项目第一根目录下不存在依赖配置文件时,发出依赖异常提示。
在一个实施例中,所述检测单元还用于:在确定前端工程项目第二根目录下不存在依赖安装文件夹时,发出依赖异常提示。
在一个实施例中,所述依赖配置文件为package.json文件;所述获取单元具体用于:
使用预设依赖读取模块读取package.json文件;
使用预设依赖解析方法将package.json文件解析为JavaScript对象;
通过访问JavaScript对象中预设依赖字段的方式来读取前端工程的每一依赖信息。
在一个实施例中,所述获取单元具体用于:使用Node.js的fs模块读取package.json文件。
在一个实施例中,所述获取单元具体用于:使用JSON.parse方法将package.json文件解析为JavaScript对象。
在一个实施例中,所述依赖包括生产依赖和开发依赖。
在一个实施例中,所述安装处理单元具体用于:使用npminstall命令或yarn命令安装所述每一未安装依赖。
在一个实施例中,所述依赖信息包括:依赖名称和依赖版本信息。
在一个实施例中,前端工程的依赖的版本规则遵循语义化版本控制规范。
在一个实施例中,所述语义化版本控制规范为主版本号、次版本号及修订号的组合;主版本号为当进行了不兼容的API修改时,需要更新主版本号的指示;次版本号为当进行了向下兼容的功能性新增时,需要更新次版本号的指示;修订号为当进行了向下兼容的问题修正时,需要更新修订号的指示。
在一个实施例中,上述前端工程的依赖检测处理装置还可以包括:写入单元,用于将预设未安装依赖数组值写入至未安装依赖配置文件中;所述未安装依赖配置文件用于供用户查看未安装的依赖。
在一个实施例中,上述前端工程的依赖检测处理装置还可以包括:配置单元,用于接收用户配置的未安装依赖配置文件的文件名。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述前端工程的依赖检测处理方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述前端工程的依赖检测处理方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述前端工程的依赖检测处理方法。
本发明实施例中,前端工程的依赖检测处理方案,通过:在确定前端工程项目第一根目录下存在依赖配置文件时,从依赖配置文件中读取前端工程的每一依赖信息,循环遍历每一依赖信息,将每一依赖信息存储至预设依赖暂存数组中;在确定前端工程项目第二根目录下存在依赖安装文件夹时,循环遍历预设依赖暂存数组执行判断预设依赖暂存数组中每一依赖是否安装的步骤,每一循环周期均执行以下操作:从预设依赖存储数组中获取当前依赖信息;在判断依赖安装文件夹中不存在当前依赖信息对应的安装文件夹时,将当前依赖信息作为未安装依赖存入至预设未安装依赖数组中;循环遍历预设未安装依赖数组中的每一未安装依赖,使用预配置的安装方式,安装所述每一未安装依赖,可以实现自动检查前端工程依赖,安装前端工程未安装的依赖,确保前端工程运行的安全性和稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中前端工程的依赖检测处理方法的流程示意图;
图2为本发明实施例中前端工程的依赖检测处理的原理示意图;
图3为本发明实施例中获取依赖信息的原理示意图;
图4为本发明实施例中判断依赖是否安装的原理示意图;
图5为本发明实施例中安装工程中未安装的依赖的原理示意图;
图6为本发明实施例中前端工程的依赖检测处理装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
本发明实施例提供了一种前端工程的依赖检测方案,该方案实现自动检查前端工程依赖,展示和安装前端工程未安装的依赖,确保前端工程正常运行,保证项目的安全性和稳定性。下面对该前端工程的依赖检测方案进行详细介绍。
图1为本发明实施例中前端工程的依赖检测处理方法的流程示意图,如图1所示,该方法包括如下步骤:
步骤101:在确定前端工程项目第一根目录下存在依赖配置文件时,从依赖配置文件中读取前端工程的每一依赖信息,循环遍历每一依赖信息,将每一依赖信息存储至预设依赖暂存数组中;
步骤102:在确定前端工程项目第二根目录下存在依赖安装文件夹时,循环遍历预设依赖暂存数组执行判断预设依赖暂存数组中每一依赖是否安装的步骤,每一循环周期均执行以下操作:
步骤1021:从预设依赖存储数组中获取当前依赖信息;
步骤1022:在判断依赖安装文件夹中不存在当前依赖信息对应的安装文件夹时,将当前依赖信息作为未安装依赖存入至预设未安装依赖数组中;
步骤103:循环遍历预设未安装依赖数组中的每一未安装依赖,使用预配置的安装方式,安装所述每一未安装依赖。
本发明实施例提供的前端工程的依赖检测处理方法,工作时:在确定前端工程项目第一根目录下存在依赖配置文件时,从依赖配置文件中读取前端工程的每一依赖信息,循环遍历每一依赖信息,将每一依赖信息存储至预设依赖暂存数组中;在确定前端工程项目第二根目录下存在依赖安装文件夹时,循环遍历预设依赖暂存数组执行判断预设依赖暂存数组中每一依赖是否安装的步骤,每一循环周期均执行以下操作:从预设依赖存储数组中获取当前依赖信息;在判断依赖安装文件夹中不存在当前依赖信息对应的安装文件夹时,将当前依赖信息作为未安装依赖存入至预设未安装依赖数组中;循环遍历预设未安装依赖数组中的每一未安装依赖,使用预配置的安装方式,安装所述每一未安装依赖,可以实现自动检查前端工程依赖,安装前端工程未安装的依赖,确保前端工程运行的安全性和稳定性。下面对该前端工程的依赖检测处理方法进行详细介绍。
如图2所示,本发明实施例的实现流程为:1、获取前端工程依赖;2、判断依赖是否安装;3、展示未安装依赖;4、安装工程中未安装的依赖。下面进行详细介绍。
1、获取前端工程依赖,如图3所示:
前端工程依赖的配置可以在项目根目录(第一根目录)下的package.json文件中进行,若package.json文件不存在直接报文件不存在异常。即在一个实施例中,上述前端工程的依赖检测处理方法还可以包括:在确定前端工程项目第一根目录下不存在依赖配置文件时,发出依赖异常提示,便于工作人员及时处理。
在package.json文件中,可以使用dependencies和devDependencies字段来分别配置生产依赖和开发依赖。即在一个实施例中,前端工程的依赖可以包括生产依赖和开发依赖,具体地:
开发依赖:主要是指在开发过程中需要用到的一些工具、库或框架,例如webpack、babel、eslint等。
生产依赖:主要是指在项目运行时需要用到的一些库或框架,例如React、Vue、jQuery等。
在具体的例子中,react和react-dom可以是生产依赖(dependencies),webpack和babel-loader是开发依赖(devDependencies)。
在一个实施例中,获取的依赖信息可以包括:依赖名称和依赖的版本信息,具体地:
(1)依赖名称:
前端依赖名称指的是项目所需的第三方库或模块的名称。例如,如果需要使用React框架,那么需要在项目中安装react和react-dom这两个依赖。
在上面的例子中,react和react-dom是生产依赖的依赖名称,webpack和babel-loader是开发依赖的依赖名称。
(2)依赖版本:
前端依赖的版本规则可以遵循语义化版本控制规范(Semantic Versioning),即“主版本号.次版本号.修订号”的格式。其中:主版本号:当你做了不兼容的API修改时,你需要更新主版本号。次版本号:当你做了向下兼容的功能性新增时,你需要更新次版本号。修订号:当你做了向下兼容的问题修正时,你需要更新修订号。
通过上述可知,在一个实施例中,前端工程的依赖的版本规则可以遵循语义化版本控制规范,便于依赖版本的管理。
通过上述可知,在一个实施例中,所述语义化版本控制规范为主版本号、次版本号及修订号的组合;其中:主版本号为当进行了不兼容的API修改时,需要更新主版本号的指示;次版本号为当进行了向下兼容的功能性新增时,需要更新次版本号的指示;修订号为当进行了向下兼容的问题修正时,需要更新修订号的指示。
在具体的例子中,react和react-dom的版本号可以为"^17.0.2",表示可以接受17.x.x系列的任何版本,但是不接受18.x.x系列的版本。
(3)获取依赖信息的具体步骤如下:
在一个实施例中,所述依赖配置文件可以为package.json文件;从依赖配置文件中读取前端工程的每一依赖信息,可以包括:
使用预设依赖读取模块读取package.json文件;
使用预设依赖解析方法将package.json文件解析为JavaScript对象;
通过访问JavaScript对象中预设依赖字段的方式来读取前端工程的每一依赖信息。
具体实施时,上述获取前端工程的依赖信息的具体实施方式可以提高获取的效率和为后续依赖检测处理奠定基础,方便后续依赖检测处理,进而提高依赖检测处理的效率。
举一例子,在上面的示例中,首先使用fs模块读取package.json文件;然后使用JSON.parse方法将其解析为JavaScript对象;最后,可以通过访问dependencies和devDependencies字段来获取项目的生产和开发依赖;循环遍历每一个生产和开发依赖,并存储到dependenciesArr(初始化为数组)中,方便后续使用。上述示例代码dependenciesArr值可以为:"react":"^17.0.2"、"react-dom":"^17.0.2"、"webpack":"^5.64.4"、"babel-loader":"^8.2.3"。
通过上述可知,在一个实施例中,使用预设依赖读取模块读取package.json文件,包括:使用Node.js的fs模块读取package.json文件,进而获得生产依赖和开发依赖,可以提高生产依赖和开发依赖的读取效率。
通过上述可知,在一个实施例中,使用预设依赖解析方法将package.json文件解析为JavaScript对象,包括:使用JSON.parse方法将package.json文件解析为JavaScript对象,可以提高生产依赖和开发依赖的读取效率。
上述获取前端工程依赖流程可以如图3所示。
2、判断依赖是否安装,如图4所示:
在前端工程中依赖安装到在项目根目录(第二根目录)下的node_modules文件,以react为例,如果node_modules文件下存在该依赖对应的安装文件夹(react),并且文件夹下有package.json文件(每个依赖都有package.json)则表示该依赖已经安装。
通过上述可知,在一个实施例中,每一循环周期还包括如下步骤:
在判断依赖安装文件夹中存在当前依赖信息对应的安装文件夹时,判断当前依赖信息对应的安装文件夹中是否存在当前依赖信息的安装文件;
在判断当前依赖信息对应的安装文件夹中不存在当前依赖信息的安装文件时,将当前依赖信息作为未安装依赖存入至预设未安装依赖数组中。
通过上述可知,在一个实施例中,每一循环周期还包括如下步骤:
在判断当前依赖信息对应的安装文件夹中存在当前依赖信息的安装文件时,表明当前依赖已安装。
前端依赖或前端工程中都存在package.json,package.json文件用于描述项目的元数据和依赖项。该package.json文件可以位于项目根目录下,并可以包含以下信息:
项目名称和版本号;
项目描述;
项目的入口文件;
项目的作者和许可证信息;
项目所依赖的其他模块及其版本号。
循环遍历dependenciesArr(预设数组)中每1个元素,查找node_modules目录是否存在该依赖名称的文件夹,文件夹下是否存在package.json,若不满足条件,将此依赖信息(依赖名称和依赖版本)保存到unInstallDependenciesArr(预设未安装依赖的文件夹)中,如上述示例代码中若只有react未安装,此时unInstallDependenciesArr可以为:"react":"^17.0.2"。
在一个实施例中,上述前端工程的依赖检测处理方法还可以包括:在确定前端工程项目第二根目录下不存在依赖安装文件夹时,发出依赖异常提示,便于工作人员及时处理。
上述判断依赖是否安装的流程图如图4所示。
3、展示未安装依赖:
经过前面步骤的处理,前端工程未安装依赖都存储在unInstallDependenciesArr中,使用node的fs模块写方法,将unInstallDependenciesArr值写入到根目录的unInstallDependencies.json文件中,其中unInstallDependencies是默认的文件名。
通过上述可知,在一个实施例中,上述前端工程的依赖检测处理方法还可以包括:将预设未安装依赖数组值写入至未安装依赖配置文件中;所述未安装依赖配置文件用于供用户查看未安装的依赖,提高用户体验。
本发明实施例支持用户配置输出文件名,即在一个实施例中,上述前端工程的依赖检测处理方法还可以包括:接收用户配置的未安装依赖配置文件的文件名,因此,本发明实施例可扩展,支持配置,可配置输出未安装依赖的文件名,灵活、方便,用户体验感高。
用户例如前端工程的开发者可以在unInstallDependencies.json文件查看未安装的依赖,即所述未安装依赖配置文件用于供用户查看未安装的依赖。
4、安装工程中未安装的依赖,如图5所示:
在前端工程工,安装依赖可以有以下几种方法:
(1)使用npminstall命令安装指定的依赖,例如:
npminstall<package-name>@<version>;
(2)使用yarn安装指定依赖,可以使用以下命令:
yarn add<package-name>@<version>;
npm和yarn都是用来管理Node.js项目中的依赖项的工具,它们之间的主要区别在于:
(1)性能:Yarn比npm更快,因为它可以并行下载多个包。
(2)安装:Yarn使用yarn.lock文件来确保每个人都安装了相同版本的依赖项,而npm使用package-lock.json文件。
经过前面步骤的处理,前端工程未安装依赖都存储在unInstallDependenciesArr中,循环遍历unInstallDependenciesArr每一个依赖,使用npm或者yarn(本发明实施例可以配置使用哪种方式,例如配置专利参数即可)将未安装依赖安装。
通过上述可知,在一个实施例中,使用预配置的安装方式,安装所述每一未安装依赖,包括:使用npminstall命令或yarn命令安装所述每一未安装依赖,可扩展,支持配置,供用户选择安装依赖的指令,灵活、方便,用户体验感高。
上述安装工程中未安装的依赖的流程图可以如图5所示。
至此前端工程依赖完成检测,并自动完成未安装依赖展示和安装工作,确保前端工程正常运行。
综上,本发明实施例提供的前端工程的依赖检测处理方法实现了:
(1)自动检测前端工程未安装依赖。
(2)自动安装前端工程未安装依赖。
本发明实施例提供的前端工程的依赖检测处理方法的优点是:
1、本发明实施例效率高,自动检测和安装前端工程未安装依赖,无需手动处理,依赖安装不遗漏,确保前端工程运行正常。
2、本发明实施例可扩展,支持配置,可配置输出未安装依赖的文件名、选择安装依赖的指令。
3、本发明实施例确保前端工程正常运行,保证项目的安全性和稳定性。
本发明实施例中还提供了一种前端工程的依赖检测处理装置,如下面的实施例所述。由于该装置解决问题的原理与前端工程的依赖检测处理方法相似,因此该装置的实施可以参见前端工程的依赖检测处理方法的实施,重复之处不再赘述。
图6为本发明实施例中前端工程的依赖检测处理装置的结构示意图,如图6所示,该装置可以包括:
获取单元01,用于在确定前端工程项目第一根目录下存在依赖配置文件时,从依赖配置文件中读取前端工程的每一依赖信息,循环遍历每一依赖信息,将每一依赖信息存储至预设依赖暂存数组中;
检测单元02,用于在确定前端工程项目第二根目录下存在依赖安装文件夹时,循环遍历预设依赖暂存数组执行判断预设依赖暂存数组中每一依赖是否安装的步骤,每一循环周期均执行以下操作:
从预设依赖存储数组中获取当前依赖信息;
在判断依赖安装文件夹中不存在当前依赖信息对应的安装文件夹时,将当前依赖信息作为未安装依赖存入至预设未安装依赖数组中;;
安装处理单元03,用于循环遍历预设未安装依赖数组中的每一未安装依赖,使用预配置的安装方式,安装所述每一未安装依赖。
本发明实施例中前端工程的依赖检测处理装置,工作时:获取单元在确定前端工程项目第一根目录下存在依赖配置文件时,从依赖配置文件中读取前端工程的每一依赖信息,循环遍历每一依赖信息,将每一依赖信息存储至预设依赖暂存数组中;检测单元在确定前端工程项目第二根目录下存在依赖安装文件夹时,循环遍历预设依赖暂存数组执行判断预设依赖暂存数组中每一依赖是否安装的步骤,每一循环周期均执行以下操作:从预设依赖存储数组中获取当前依赖信息;在判断依赖安装文件夹中不存在当前依赖信息对应的安装文件夹时,将当前依赖信息作为未安装依赖存入至预设未安装依赖数组中;安装处理单元循环遍历预设未安装依赖数组中的每一未安装依赖,使用预配置的安装方式,安装所述每一未安装依赖,可以实现自动检查前端工程依赖,安装前端工程未安装的依赖,确保前端工程运行的安全性和稳定性。
在一个实施例中,所述检测单元还用于:
在判断依赖安装文件夹中存在当前依赖信息对应的安装文件夹时,判断当前依赖信息对应的安装文件夹中是否存在当前依赖信息的安装文件;
在判断当前依赖信息对应的安装文件夹中不存在当前依赖信息的安装文件时,将当前依赖信息作为未安装依赖存入至预设未安装依赖数组中。
在一个实施例中,所述检测单元还用于:在判断当前依赖信息对应的安装文件夹中存在当前依赖信息的安装文件时,表明当前依赖已安装。
在一个实施例中,所述获取单元还用于:在确定前端工程项目第一根目录下不存在依赖配置文件时,发出依赖异常提示。
在一个实施例中,所述检测单元还用于:在确定前端工程项目第二根目录下不存在依赖安装文件夹时,发出依赖异常提示。
在一个实施例中,所述依赖配置文件为package.json文件;所述获取单元具体用于:
使用预设依赖读取模块读取package.json文件;
使用预设依赖解析方法将package.json文件解析为JavaScript对象;
通过访问JavaScript对象中预设依赖字段的方式来读取前端工程的每一依赖信息。
在一个实施例中,所述获取单元具体用于:使用Node.js的fs模块读取package.json文件。
在一个实施例中,所述获取单元具体用于:使用JSON.parse方法将package.json文件解析为JavaScript对象。
在一个实施例中,所述依赖包括生产依赖和开发依赖。
在一个实施例中,所述安装处理单元具体用于:使用npminstall命令或yarn命令安装所述每一未安装依赖。
在一个实施例中,所述依赖信息包括:依赖名称和依赖版本信息。
在一个实施例中,前端工程的依赖的版本规则遵循语义化版本控制规范。
在一个实施例中,所述语义化版本控制规范为主版本号、次版本号及修订号的组合;主版本号为当进行了不兼容的API修改时,需要更新主版本号的指示;次版本号为当进行了向下兼容的功能性新增时,需要更新次版本号的指示;修订号为当进行了向下兼容的问题修正时,需要更新修订号的指示。
在一个实施例中,上述前端工程的依赖检测处理装置还可以包括:写入单元,用于将预设未安装依赖数组值写入至未安装依赖配置文件中;所述未安装依赖配置文件用于供用户查看未安装的依赖。
在一个实施例中,上述前端工程的依赖检测处理装置还可以包括:配置单元,用于接收用户配置的未安装依赖配置文件的文件名。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述前端工程的依赖检测处理方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述前端工程的依赖检测处理方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述前端工程的依赖检测处理方法。
本发明实施例中,前端工程的依赖检测处理方案,通过:在确定前端工程项目第一根目录下存在依赖配置文件时,从依赖配置文件中读取前端工程的每一依赖信息,循环遍历每一依赖信息,将每一依赖信息存储至预设依赖暂存数组中;在确定前端工程项目第二根目录下存在依赖安装文件夹时,循环遍历预设依赖暂存数组执行判断预设依赖暂存数组中每一依赖是否安装的步骤,每一循环周期均执行以下操作:从预设依赖存储数组中获取当前依赖信息;在判断依赖安装文件夹中不存在当前依赖信息对应的安装文件夹时,将当前依赖信息作为未安装依赖存入至预设未安装依赖数组中;循环遍历预设未安装依赖数组中的每一未安装依赖,使用预配置的安装方式,安装所述每一未安装依赖,可以实现自动检查前端工程依赖,安装前端工程未安装的依赖,确保前端工程运行的安全性和稳定性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (19)
1.一种前端工程的依赖检测处理方法,其特征在于,包括:
在确定前端工程项目第一根目录下存在依赖配置文件时,从依赖配置文件中读取前端工程的每一依赖信息,循环遍历每一依赖信息,将每一依赖信息存储至预设依赖暂存数组中;
在确定前端工程项目第二根目录下存在依赖安装文件夹时,循环遍历预设依赖暂存数组执行判断预设依赖暂存数组中每一依赖是否安装的步骤,每一循环周期均执行以下操作:
从预设依赖存储数组中获取当前依赖信息;
在判断依赖安装文件夹中不存在当前依赖信息对应的安装文件夹时,将当前依赖信息作为未安装依赖存入至预设未安装依赖数组中;
循环遍历预设未安装依赖数组中的每一未安装依赖,使用预配置的安装方式,安装所述每一未安装依赖。
2.如权利要求1所述的方法,其特征在于,每一循环周期还包括如下步骤:
在判断依赖安装文件夹中存在当前依赖信息对应的安装文件夹时,判断当前依赖信息对应的安装文件夹中是否存在当前依赖信息的安装文件;
在判断当前依赖信息对应的安装文件夹中不存在当前依赖信息的安装文件时,将当前依赖信息作为未安装依赖存入至预设未安装依赖数组中。
3.如权利要求2所述的方法,其特征在于,每一循环周期还包括如下步骤:
在判断当前依赖信息对应的安装文件夹中存在当前依赖信息的安装文件时,表明当前依赖已安装。
4.如权利要求1所述的方法,其特征在于,还包括:在确定前端工程项目第一根目录下不存在依赖配置文件时,发出依赖异常提示。
5.如权利要求1所述的方法,其特征在于,还包括:在确定前端工程项目第二根目录下不存在依赖安装文件夹时,发出依赖异常提示。
6.如权利要求1所述的方法,其特征在于,所述依赖配置文件为package.json文件;从依赖配置文件中读取前端工程的每一依赖信息,包括:
使用预设依赖读取模块读取package.json文件;
使用预设依赖解析方法将package.json文件解析为JavaScript对象;
通过访问JavaScript对象中预设依赖字段的方式来读取前端工程的每一依赖信息。
7.如权利要求6所述的方法,其特征在于,使用预设依赖读取模块读取package.json文件,包括:使用Node.js的fs模块读取package.json文件。
8.如权利要求6所述的方法,其特征在于,使用预设依赖解析方法将package.json文件解析为JavaScript对象,包括:使用JSON.parse方法将package.json文件解析为JavaScript对象。
9.如权利要求1所述的方法,其特征在于,所述依赖包括生产依赖和开发依赖。
10.如权利要求1所述的方法,其特征在于,使用预配置的安装方式,安装所述每一未安装依赖,包括:使用npminstall命令或yarn命令安装所述每一未安装依赖。
11.如权利要求1所述的方法,其特征在于,所述依赖信息包括:依赖名称和依赖版本信息。
12.如权利要求1所述的方法,其特征在于,前端工程的依赖的版本规则遵循语义化版本控制规范。
13.如权利要求12所述的方法,其特征在于,所述语义化版本控制规范为主版本号、次版本号及修订号的组合;主版本号为当进行了不兼容的API修改时,需要更新主版本号的指示;次版本号为当进行了向下兼容的功能性新增时,需要更新次版本号的指示;修订号为当进行了向下兼容的问题修正时,需要更新修订号的指示。
14.如权利要求1所述的方法,其特征在于,还包括:
将预设未安装依赖数组值写入至未安装依赖配置文件中;所述未安装依赖配置文件用于供用户查看未安装的依赖。
15.如权利要求14所述的方法,其特征在于,还包括:接收用户配置的未安装依赖配置文件的文件名。
16.一种前端工程的依赖检测处理装置,其特征在于,包括:
获取单元,用于在确定前端工程项目第一根目录下存在依赖配置文件时,从依赖配置文件中读取前端工程的每一依赖信息,循环遍历每一依赖信息,将每一依赖信息存储至预设依赖暂存数组中;
检测单元,用于在确定前端工程项目第二根目录下存在依赖安装文件夹时,循环遍历预设依赖暂存数组执行判断预设依赖暂存数组中每一依赖是否安装的步骤,每一循环周期均执行以下操作:
从预设依赖存储数组中获取当前依赖信息;
在判断依赖安装文件夹中不存在当前依赖信息对应的安装文件夹时,将当前依赖信息作为未安装依赖存入至预设未安装依赖数组中;
安装处理单元,用于循环遍历预设未安装依赖数组中的每一未安装依赖,使用预配置的安装方式,安装所述每一未安装依赖。
17.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至15任一所述方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至15任一所述方法。
19.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至15任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310971965.4A CN116954699A (zh) | 2023-08-03 | 2023-08-03 | 前端工程的依赖检测处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310971965.4A CN116954699A (zh) | 2023-08-03 | 2023-08-03 | 前端工程的依赖检测处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116954699A true CN116954699A (zh) | 2023-10-27 |
Family
ID=88456496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310971965.4A Pending CN116954699A (zh) | 2023-08-03 | 2023-08-03 | 前端工程的依赖检测处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116954699A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117891473A (zh) * | 2024-03-14 | 2024-04-16 | 麒麟软件有限公司 | 用于集成开发环境插件依赖管理的方法及插件依赖管理器 |
-
2023
- 2023-08-03 CN CN202310971965.4A patent/CN116954699A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117891473A (zh) * | 2024-03-14 | 2024-04-16 | 麒麟软件有限公司 | 用于集成开发环境插件依赖管理的方法及插件依赖管理器 |
CN117891473B (zh) * | 2024-03-14 | 2024-05-31 | 麒麟软件有限公司 | 用于集成开发环境插件依赖管理的方法及插件依赖管理器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11256523B2 (en) | Modular co-versioning in a dynamically linked runtime environment | |
US7484223B2 (en) | System and method for building a run-time image from components of a software program | |
US7133874B2 (en) | Prototyping model for components of a software program | |
US8914780B2 (en) | Incremental generation of managed assemblies | |
US7428559B2 (en) | Versioning model for software program development | |
CN112558980A (zh) | 多软件包管理方法及装置 | |
US20090125874A1 (en) | Method and system for creating projects in a rational application developer workspace | |
US20110126179A1 (en) | Method and System for Dynamic Patching Software Using Source Code | |
WO2020010725A1 (zh) | 自动同步刷新浏览器的方法、装置及计算机设备 | |
US10496379B2 (en) | Facilitated production of code for software testing | |
CN116954699A (zh) | 前端工程的依赖检测处理方法及装置 | |
CN112099880B (zh) | 场景驱动的应用程序约减方法和系统 | |
CN108694049B (zh) | 一种更新软件的方法和设备 | |
Khatchadourian et al. | [Engineering Paper] A Tool for Optimizing Java 8 Stream Software via Automated Refactoring | |
CN112685040B (zh) | 安卓系统中界面文件的生成方法、装置、设备及存储介质 | |
CN106843935A (zh) | 一种自动更新静态文件版本号的方法及系统 | |
KR100834676B1 (ko) | 소프트웨어 프로젝트 빌드 방법 | |
US9747085B2 (en) | Source code generation from prototype source | |
US9396239B2 (en) | Compiling method, storage medium and compiling apparatus | |
CN111352631A (zh) | 一种接口兼容性检测方法及装置 | |
CN110321138B (zh) | 一种程序更新、迁移方法和装置 | |
EP2535813B1 (en) | Method and device for generating an alert during an analysis of performance of a computer application | |
CN114816364A (zh) | 基于Swagger动态生成范本文件的方法、装置及应用 | |
CN114089965A (zh) | 基于单体式代码仓库Monorepo的程序开发项目管理方法、装置 | |
CN115168175A (zh) | 程序错误解决方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |