System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于多项目包共享的磁盘空间优化的开发方法技术_技高网

一种基于多项目包共享的磁盘空间优化的开发方法技术

技术编号:40449286 阅读:5 留言:0更新日期:2024-02-22 23:08
本发明专利技术公开了基于多项目包共享的磁盘空间优化的开发方法,涉及软件项目开发技术领域,包括以下步骤:S1、建立全局包仓库:建立一个全局包仓库,用于存储所有项目需要用到的依赖包,且该仓库位于本地服务器,S2、安装包检索:在项目开发过程中,当需要安装某个依赖包时,在全局包仓库中进行检索所需的依赖包。本发明专利技术通过全局包仓库的方式,多个项目可以共享同一份安装包,避免了在每个项目中独立重复安装的问题,这样的共享机制能够节省存储空间,并且方便统一管理依赖包的版本和更新,并且由于共享同一份包,减少了多个项目中重复存储相同包的情况,从而节省了磁盘空间。

【技术实现步骤摘要】

本专利技术涉及软件项目开发,具体为基于多项目包共享的磁盘空间优化的开发方法


技术介绍

1、随着互联网技术的不断发展,互联网业务需求量也在不断增加,在实际的软件开发中,并不会单纯的只开发一个项目,会存在多个项目并行开发的情况,随着项目的计量增多,项目中使用的包会越来越多,然而很多项目的包其实是重复存在的,而且新项目中需要的包会重复安装,这些包会占用存储空间、降低cpu运行效率,长期累计会造成磁盘空间的大量占用和浪费;

2、包是指组件设计是通过对功能及视觉表达中元素的拆解、归纳、重组,并基于可被复用的目的,形成规范化的组件,通过多维度组合来构建整个设计方案,将这些组件整理在一起,便形成包;软连接又被叫为符号链接,它包含了到原文件的路径信息;硬链接是对原文件起了一个别名;

3、随着项目数量的增多,开发团队面临了包管理的复杂性,如图2所示,很多项目使用的依赖包在本质上是重复存在的,并且新项目需要的依赖包可能会被重复安装,这不仅占用了存储空间,还降低了cpu的运行效率,在长期累积下来以后,这种情况会导致磁盘空间大量被占用和浪费,给项目开发带来额外的负担,为了解决这一问题,本专利技术着眼于实现包共享及优化磁盘空间,提高cpu运行效率,并消除对重复安装相同包的需求,从而使团队能够更加专注于项目的开发,而无需耗费大量精力处理重复包和磁盘空间问题;

4、传统软件开发中,每一个包下面都维护着自己的node_modules,这样看起来确实非常整洁,但同时也带来一些较为严重的问题,一是依赖包重复安装,扁平化的包管理方式中依赖a与依赖c同时引用了依赖b,此时的依赖b会被下载两次,此刻若是某一个依赖被引用了n次,那么它就需要被下载n次,二是依赖层级过多,若是项目所需要的依赖较多,那么依赖就会一层一层嵌套下去,形成一个依赖地狱,从而不利于项目的维护,三是模块实例无法共享,当不同的包依赖同一个包的不同版本时,包管理器不会自动降低版本号,而是允许不同版本的包并存,从而造成模块实例无法共享。


技术实现思路

1、本专利技术的目的在于提供基于多项目包共享的磁盘空间优化的开发方法,以解决上述
技术介绍
中提出的问题。

2、为实现上述目的,本专利技术提供如下技术方案:基于多项目包共享的磁盘空间优化的开发方法,包括以下步骤:

3、s1、建立全局包仓库:建立一个全局包仓库,用于存储所有项目需要用到的依赖包,且该仓库位于本地服务器;

4、s2、安装包检索:在项目开发过程中,当需要安装某个依赖包时,在全局包仓库中进行检索所需的依赖包,使用包管理工具提供的命令在全局包仓库中查询依赖包;

5、s3、全局包仓库查询:在全局包仓库中,查询是否存在所需的依赖包;若是则执行步骤s4,否则执行步骤s5;

6、s4、包链接到本地:如果在全局包仓库中找到了所需的依赖包,通过软链接或硬链接的方式将全局包仓库中的该包连接到当前项目的本地环境,通过软链接在文件系统中创建一个指向全局包仓库中依赖包的符号链接文件,从而在项目中引用该依赖包时,实际上是通过软链接间接引用了全局包仓库中的包,软链接保持了文件的真实路径,从而对于引用全局包仓库中的包的修改和更新会立即反映到项目中,硬链接是在文件系统中创建一个指向全局包仓库中依赖包的物理链接,硬链接不保持文件的真实路径,而是共享相同的索引节点,从而无论是在全局包仓库中还是在项目中对于包的修改和更新都会同步进行。

7、s5、包安装并链接:如果在全局包仓库中没有找到所需的依赖包,在全局包仓库中安装该包,且随后通过软链接或硬链接的方式将其链接到当前项目的本地环境,并且通过包管理工具在全局包仓库中安装所需的依赖包;

8、s6、扁平化包管理:将不同项目的包都放置在同一个目录下,当不同的包依赖同一个包的不同版本时,则通过更新对应包的版本号,使得所有的依赖都能使用同一个版本,从而解决版本冲突,如果a和c都依赖了b,那么a和c在自己的node_modules中未找到依赖c的时候会向上寻找,并最终在与他们同级的node_modules中找到依赖包c,这样就不会出现重复下载的情况,而且依赖层级嵌套也不会太深,因为没有重复的下载,所有的a和c都会寻找并依赖于同一个b包。

9、优选的,所述步骤s1具体包括以下步骤:

10、s101、创建全局包仓库目录:在选择的包存储目录中创建一个新的目录,用于作为全局包仓库;

11、s102、设置访问权限:根据需要设置全局包仓库目录的访问权限,以确保只有授权的用户或项目可以访问和使用该仓库;

12、s103、添加依赖包:将所有项目需要用到的依赖包手动复制或下载到全局包仓库目录中;

13、s104、维护全局包仓库:定期更新和维护全局包仓库,确保其中的依赖包是最新的,并删除不再需要的旧版本包;

14、s105、配置项目使用全局包仓库:在每个项目的配置文件中,配置使用该全局包仓库作为依赖包的来源。

15、优选的,在步骤s102中,对于设置全局包仓库目录的访问权限,通过使用操作系统提供的权限管理工具来进行设置,权限管理工具包括chmod命令。

16、优选的,在步骤s103中,对于依赖包手动复制或下载,通过从其他项目的本地node_modules目录中复制依赖包来实现。

17、优选的,在步骤s4和s5中,对于软链接包含对源文件的路径引用,并不存储真正的数据和文件内容,对于硬链接通过使用相同的inode号来创建一个新的链接文件,多个链接文件指向同一个数据块或者扇区,共享真正存储数据的块。

18、优选的,所述步骤s6具体包括以下步骤:

19、s601、创建共享包目录:在适当的位置创建一个用于存储所有共享包的目录;

20、s602、将包复制到共享包目录:将所有需要共享的包复制到共享包目录中;

21、s603、删除项目的本地包目录:在每个项目中,删除本地的node_modules目录,从而避免每个项目维护独立的包目录结构,实现扁平化的包管理;

22、s604、配置包引用路径:在每个项目的配置文件中,配置包引用路径;

23、s605、解决版本冲突:如果不同的包依赖同一个包的不同版本,包管理器会自动降低对应包的版本号,以确保所有依赖都能使用相同的版本。

24、优选的,在步骤s605中,所述包管理器将会自动解决不同包依赖同一个包的不同版本的版本冲突,并根据最大匹配原则来降低或升高对应包的版本号,以确保所有依赖都能使用相同的版本,以避免冲突,且通过依赖解析算法从依赖规范找到符合要求的规范的版本组合,依赖解析算法的具体步骤如下:

25、步骤一:读取项目的package.json文件:首先读取项目中的package.json文件,该文件列出了项目的所有依赖关系及其版本规范;

26、步骤二:构建一个依赖图,该图表示项目中所有的依赖关系和它们之间的依赖关系,本文档来自技高网...

【技术保护点】

1.基于多项目包共享的磁盘空间优化的开发方法,其特征在于包括以下步骤:

2.根据权利要求1所述的基于多项目包共享的磁盘空间优化的开发方法,其特征在于,还包括步骤:

3.根据权利要求1所述的基于多项目包共享的磁盘空间优化的开发方法,其特征在于,所述步骤S1具体包括以下步骤:

4.根据权利要求3所述的基于多项目包共享的磁盘空间优化的开发方法,其特征在于,在步骤S102中,对于设置全局包仓库目录的访问权限,通过使用操作系统提供的权限管理工具来进行设置,权限管理工具包括CHMOD命令。

5.根据权利要求3所述的基于多项目包共享的磁盘空间优化的开发方法,其特征在于,在步骤S103中,对于依赖包手动复制或下载,通过从其他项目的本地node_modules目录中复制依赖包来实现。

6.根据权利要求1所述的基于多项目包共享的磁盘空间优化的开发方法,其特征在于,在步骤S4和S5中,对于软链接包含对源文件的路径引用,并不存储真正的数据和文件内容,对于硬链接通过使用相同的inode号来创建一个新的链接文件,多个链接文件指向同一个数据块或者扇区,共享真正存储数据的块。

7.根据权利要求1所述的基于多项目包共享的磁盘空间优化的开发方法,其特征在于,所述步骤S6具体包括以下步骤:

8.根据权利要求7所述的基于多项目包共享的磁盘空间优化的开发方法,其特征在于,在步骤S605中,所述包管理器将会自动解决不同包依赖同一个包的不同版本的版本冲突,并根据最大匹配原则来降低或升高对应包的版本号,以确保所有依赖都能使用相同的版本,以避免冲突。

9.根据权利要求8所述的基于多项目包共享的磁盘空间优化的开发方法,其特征在于,所述最大匹配原则为包管理器会选择与其他依赖关系兼容的最新版本,以满足的依赖项。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有基于多项目包共享的磁盘空间优化的开发程序,所述基于多项目包共享的磁盘空间优化的开发程序被处理器执行时用于实现如权利要求1-9中任意一项所述的基于多项目包共享的磁盘空间优化的开发方法的操作。

...

【技术特征摘要】

1.基于多项目包共享的磁盘空间优化的开发方法,其特征在于包括以下步骤:

2.根据权利要求1所述的基于多项目包共享的磁盘空间优化的开发方法,其特征在于,还包括步骤:

3.根据权利要求1所述的基于多项目包共享的磁盘空间优化的开发方法,其特征在于,所述步骤s1具体包括以下步骤:

4.根据权利要求3所述的基于多项目包共享的磁盘空间优化的开发方法,其特征在于,在步骤s102中,对于设置全局包仓库目录的访问权限,通过使用操作系统提供的权限管理工具来进行设置,权限管理工具包括chmod命令。

5.根据权利要求3所述的基于多项目包共享的磁盘空间优化的开发方法,其特征在于,在步骤s103中,对于依赖包手动复制或下载,通过从其他项目的本地node_modules目录中复制依赖包来实现。

6.根据权利要求1所述的基于多项目包共享的磁盘空间优化的开发方法,其特征在于,在步骤s4和s5中,对于软链接包含对源文件的路径引用,并不存储真正的数据和文件内容,对于硬链接通过使用相同的i...

【专利技术属性】
技术研发人员:谭文超徐辉吴鹏李刚
申请(专利权)人:中电通商数字技术上海有限公司
类型:发明
国别省市:

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

1