bower / npm如何知道项目在哪个github用户中

当我们运行bower install angularjs或者npm install ionic ,这些工具(bower和npm)如何知道项目所在的用户(例如离子位于driftyco / ionic上 )。

另外,如果多个项目具有相同的名称,哪个项目优先?

每个可用的软件包pipe理器都有不同的软件包存储库。 无论何时通过名称引用包,该工具都会查询这些存储库中的一个,询问在哪里可以find要下载的实际代码。

对于鲍尔,那里有凉亭registry 。 对于npm,有npmregistry 。 等等。

当只指定一个包名称时,该工具会向registry询问数据。 如果你指定了一个名字和一个GitHub仓库,那么它会去那个仓库去获取代码,并将其标记为满足package-name依赖关系。

registry知道在哪里可以find代码,因为程序包作者在发布程序包时注册了所有信息。

npm 默认它的registry ,但是您可以将您的依赖范围 npm在使用自定义registry。

Ruby包pipe理器gem要求你指定你想要使用的registry – 大部分时间只是Rubygems。

但是他们都知道以哪种方式查询获取相关数据。

Bower和NPM对于社区提交的软件包是不可知论的。 最终由开发人员来确认您所join软件的NPM和Bower软件包是否正确。

最好的方法是在安装之前在各自的Bower和NPM站点上search和查看软件包。 在那里你可以参考GIT的URL,并确认其正确的软件包或不分叉,然后再继续。