如何从git存储库中的子目录安装bower组件?

时间:2015-01-13 16:01:37

标签: github polymer bower

我认识到这可能违反惯例:

我正在尝试安装一个bower.json不驻留在存储库顶层的bower组件,因此产生了以下效果:

bower install https://github.com/myrepo/my-components/tree/master/my-specific-component

然而凉亭会回应以下内容:

bower not-cached    https://github.com/my-repo/my-components/tree/master/my-specific-component#*
bower resolve       https://github.com/my-repo/my-components/tree/master/my-specific-component#*
bower download      https://github.com/my-repo/my-components/tree/master/my-specific-component
bower EHTTP         Status code of 404

如何从像这样的存储库的子目录安装组件?

4 个答案:

答案 0 :(得分:8)

如果您的git存储库是公开的,则可以从installs获得https://github.com/org/repo/archive/tag.tar.gz。 如果您的git存储库是私有的bower,则执行给定URL的git clone。

由于git中没有可用于克隆存储库子目录的URL,也没有用于下载子目录的tar的URL,因此bower目前不支持从存储库的子目录进行安装。

答案 1 :(得分:1)

我不认为你可以从子文件夹中进行bower安装。我认为惯例是bower检查git存储库的根目录(取决于你要求的提交),然后从那里安装组件和依赖项。 如果您查看git中托管的核心元素和纸质元素,您会注意到它们托管在不同的存储库中

你可以使用git子模块在另一个git repo中包含git,这样你就可以在想要使用bower安装时引用子模块(不测试)

答案 2 :(得分:0)

我尝试了子模块,但无法让它工作。不幸的是,根据Bower does not download git submodule (DojoX candidate plugin)的讨论,它似乎不适用于submoudle。基于@ sheenathejunglegirl的建议,我创建了一个repo来演示使用归档文件的工作方法。当您需要的公共JS文件未使用bower repo注册或未使用bower.json在public git repo中托管时,这将非常有用。

只需使用简单的bower.json压缩JS文件,然后通过github的原始URL访问它。该示例可在https://github.com/barryku/bower-repo-example找到。它可以与以下任何一种一起使用,

git install https://github.com/barryku/bower-repo-example.git
git install https://raw.github.com/barryku/bower-repo-example/master/my-bower-lib.0.0.1.zip

您可能需要调整github的原始文件URL。

答案 3 :(得分:0)

我在存储库根目录下的子目录是client /。我将bower.json移动到了存储库根目录,并将.bowerrc放在根目录中,内容为:

{
   "directory" : "client/bower_components"
}

也许这对你来说是可以接受的。至少依赖项将安装在您的子目录下,bower.json和.bowerrc必须驻留在根级别。