包管理器允许您管理项目正常工作所需的依赖项(您或其他人编写的外部代码)。
包管理器是分布式软件的集合。它是一个巨大的插件库,不是环境或编程语言的原生代码库,而是在其上提供一些功能。
例如,考虑像 Lodash 这样的 JavaScript 库。它为 JavaScript 编程语言提供了一组实用程序。例如,它的 last
方法返回数组的最后一个元素。默认情况下,JavaScript 不提供这种功能。我可以编写自己的函数来处理提取数组的最后一个元素,也可以安装 Lodash 库来处理该功能。
但软件包可能要复杂得多。例如,服务器端语言可能具有处理应用程序用户身份验证的包。
使用维护良好的分布式软件包的一个好处是,它们得到了社区的支持和测试。这意味着您可以获取可靠、稳定且可以正常工作的代码,并为您的项目编写更少的代码。
包管理器通常与注册表或包所在的位置配合使用。它们可以由同一个提供者支持,也可以分开。例如,对于 JavaScript,NPM 既是包管理器(命令行工具)也是注册表。但是还有其他 JavaScript 包管理器,如 Yarn、PNPM,它们只处理命令行部分,但使用 NPM 作为它们安装的包的源(注册表)。