当我们都运行 bower install angularjs
或 npm install ionic
时,这些工具(bower 和 npm)如何知道项目位于哪个用户(例如 ionic 位于 driftyco/ionic )。
此外,如果多个项目同名,哪个项目优先?
最佳答案
每个可用的包管理器都存在不同的包存储库。每当您按名称引用包时,该工具都会查询这些存储库之一,询问在哪里可以找到必须下载才能运行的实际代码。
对于 Bower,有 bower registry 。对于 npm,有 npm registry 。等等。
当您仅指定包名称时,该工具会向其注册表询问数据。如果您指定名称和 GitHub 存储库,则会转到该存储库以获取代码,并将其标记为满足 package-name
依赖项。
注册表知道在哪里可以找到代码,因为包作者在发布包时注册了所有这些信息。
npm
defaults its registry ,但你可以scope your dependencies使用自定义注册表。
gem
,Ruby 包管理器,要求您指定要使用的注册表 - 大多数时候,只需指定 Rubygems。
但他们都知道以某种方式查询谁来获取相关数据。
关于node.js - Bower/npm 如何知道项目位于哪个 github 用户中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33906903/