当我们都运行bower install angularjs
或npm install ionic
时,这些工具(bower和npm)如何知道项目所在的用户(例如离子位于driftyco/ionic)。
此外,如果多个项目具有相同的名称,哪个项目优先?
答案 0 :(得分:2)
每个可用的包管理器都存在不同的包存储库。每当您按名称引用包时,该工具都会查询其中一个存储库,询问在哪里可以找到必须下载的实际代码才能使其正常工作。
对于鲍尔来说,有bower registry。对于npm,有npm registry。之类的。
当您仅指定包名称时,该工具会向其注册表询问数据。如果您指定名称和GitHub仓库,那么它将转到该仓库以获取代码,并将其标记为满足package-name
依赖关系。
注册表知道在哪里找到代码,因为软件包作者在发布软件包时注册了所有这些信息。
npm
defaults its registry,但您可以scope your dependencies使用自定义注册表。
gem
要求您指定要使用的注册表 - 大多数情况下,只需指定Rubygems。
但他们都知道以某种方式查询以获取相关数据。
答案 1 :(得分:0)
当谈到社区提交的软件包时,Bower和NPM是不可知的。开发人员最终要确认您合并到软件中的任何NPM和Bower软件包都是正确的实例。
最好的方法是在安装之前在各自的Bower和NPM站点搜索和查看包。在那里你可以引用GIT url并确认它是正确的包,或者在继续之前确认它。