依赖关系是现代Web开发的基石。 这些是构建高级Web应用程序所需的必需工具,插件,库和框架。
在过去的几年中,依赖的数量激增。 随着时间的流逝,开发人员已经采用了依赖项管理工具,这些工具减轻了保持依赖项组织和最新状态的压力 。 这些工具为开发人员和项目经理带来了优化的工作流程。
我在这里列出了最好的依赖工具,包括完善的和新兴的平台。 专业的Web开发需要不断学习,我认为依赖性管理是一个值得学习的技能。
1. NPM
如果不感谢Node Package Manager的话,我不能写这本指南。 该系统基于Node.js构建,可为100,000多个软件包和模块的庞大存储库提供支持。
每个项目都可以通过NPM使用package.json文件设置,甚至可以通过Gulp (在Node上)进行管理。 依赖关系可以直接从终端进行更新和优化 。 您可以使用从package.json文件中自动提取的依赖项文件和版本号来构建新项目。
NPM不仅对依赖管理很有用,而且对于现代Web开发而言,它实际上是必不可少的工具。 如果您感到困惑,请查看此Reddit主题以获取初学者的解释。
2.凉亭
软件包管理系统Bower在NPM上运行,这似乎有点多余,但是两者之间有区别,特别是NPM提供了更多功能, 而Bower的目的是减少前端依赖项的文件大小和加载时间 。
查看此Stack问题,以了解有关细微差异的更多信息。
一些开发人员认为Bower基本上已经过时,因为它运行在NPM上,该服务几乎可以完成Bower可以做的所有事情。 一般来说,这没错。
但是开发人员应该意识到Bower可以专门针对前端依赖项优化工作流程 。 我建议Ben McCormick的文章Is Bower有用,以了解有关这两种软件包管理工具所提供价值的更多信息。
3. RubyGems
RubyGems是Ruby的软件包管理器,在Web开发人员中非常流行。 该项目是开源的 ,包括所有免费的Ruby gem。
为了给初学者简要概述 ,“ gem”只是在Ruby环境中运行的一些代码 。 这可能导致诸如Bundler之类的程序可以管理gem版本并保持所有内容的更新。
Rails开发人员会喜欢这个功能,但是前端软件包呢? 由于Ruby是开源的,因此开发人员可以构建Bower for Rails之类的项目。 只需很少的学习,就可以将前端包管理带到Ruby平台。
4. RequireJS
RequireJS有一些特殊之处,它主要是一个JS工具集。 它可用于快速加载JS模块(包括Node模块) 。
RequireJS可以根据您所使用的内容自动检测所需的依赖项 ,因此这可能类似于C / C ++中的经典软件编程,在C / C ++中经典的软件编程包含在其他库中。
您将找到有关此主题的有趣的GitHub讨论及其对现代Web开发人员的价值。 尽管已经出现了诸如webpack之类的其他JS管理工具,但RequireJS仍然可以在生产环境中使用。 如果它对您有用,那就很重要。
5.果酱
JamJS提供了一种基于浏览器的软件包管理新形式。 这是一个JavaScript包管理器,具有类似于RequireJS的自动管理功能。
您所有的依赖项都放入一个JS文件中,可让您快速添加和删除项目。 另外,无论您使用什么其他工具(例如RequireJS),都可以在浏览器中更新这些文件。
通过终端根据最新版本更新库。 每个项目都可以根据您的需要 使用优化的组件自动创建 。 Jam 在GitHub上免费,如果有时间,值得一看。
6. Browserify
大多数开发人员都知道Browserify,即使它不是其典型工作流程的一部分。 这是另一个依赖管理工具,它通过将所需的模块和库捆绑在一起来优化它们。
这些捆绑软件在浏览器中受支持,这意味着您可以使用纯JavaScript包含和合并模块 。 您只需要NPM即可开始,然后使用Browserify即可开始。
查看此入门教程,以了解如何在浏览器中直接管理Node。 GitHub上还免费提供一本冗长的Browserify手册 。 想法是将所有这些Node工具引入浏览器,并通过使用Browserify自动化过程来节省时间。
7. Mantri
MantriJS仍处于增长的早期阶段, 它是一个用于中高级Web应用程序的依赖系统。 依赖关系通过名称空间进行管理,并在功能上进行组织,以避免冲突并减少混乱 。
撰写本文时,Mantri当前为v0.2.2。 它是完全开源的 , 针对需要大量依赖项的更复杂的Web应用程序而构建 。 Mantri旨在遵循模块化编程实践,并希望鼓励开发人员走同样的道路。
8.沃洛
项目管理工具volo是一个开源NPM存储库,可以创建项目,添加库和自动化工作流。
Volo 在Node内部运行,并依靠JavaScript进行项目管理 。 可以在GitHub上找到简短的介绍性指南,以说明安装过程和常用用法。 例如,如果您运行命令volo create
,则可以附加任何库,例如HTML5 Boilerplate。
但是除了创建新项目之外,您还可以为旧项目添加/更新库 。 Volo结合了前端开发所需的一切。 查看volo的设计目标,以了解其在实际项目中的运作方式。
9.恩德
Ender是“无库图书馆”,是您在网上可以找到的最轻便的软件包管理器之一。 它允许开发人员搜索JS软件包并直接从命令行安装/编译它们 。 开发团队将Ender视为“ NPM的妹妹”。
自然,整个Ender框架可在GitHub上免费获得 。 它只是安装的一种工具,可帮助管理本地项目的前端JavaScript框架的使用 。 一切旨在让前端开发人员的工作流程轻松发挥最大潜力。
Ender主网站上有质量文档,因此如果您感兴趣的话,值得一眼。
10.点
推荐的安装Python依赖项的方法是通过pip 。 该工具是由Python Packaging Authority创建的,就像Python一样,它是完全开源的。
大多数Python开发人员建议使用pip作为依赖项,包括Django团队 。 无论您是刚开始使用Python还是已经在后端开发中始终使用它,这都是一个程序包管理器,您将很高兴在工具箱中拥有它。
11.作曲家
Composer是与NPM非常相似的软件包管理器,但它仅专注于PHP库。 您可以在Packagist上找到依赖项列表,其中包括大型PHP框架(如Laravel) 。
如果您是任何类型PHP开发人员 ,我都建议您认真研究Composer。 它很容易上手,但很难适应您的工作流程。 但是,随着实践的发展,它将成为PHP开发项目的主要内容。
这是一种多功能工具,具有随着时间增长甚至更大的潜力。 另外,NPM可以与Composer结合使用 ,为您的所有PHP / JS项目创建一个前端+后端依赖管理系统。
结语
显然,这些依赖管理器中有许多具有相似的特性和相似的品质。 有些是为解决其他问题而构建的,甚至可以相互串联运行(即Composer和NPM)。
对于新开发人员而言,依赖管理的主题可能很难。 我建议选择其中一种工具,并进行深入研究以尽可能多地学习。 尝试构建小型Web应用程序,并了解为什么依赖管理很有用。
一旦您了解了如何将这些工具应用到您的工作流程中,您将永远不会再考虑返回。
翻译自: https://www.hongkiat.com/blog/manage-dependencies-tools-webdev/