凉亭注册本地git包

我怎样才能在凉亭注册一个本地的git包?

我目前的component.json如下

{ "name": "myproject", "version": "1.0.0", "dependencies": { "jquery": "1.8.0", "twitter/bootstrap": "2.1.1" } } 

不过,我也想添加一个我在C:/mypackage创build的包,它是一个标签版本的git仓库。 当我做bower install --save C:/mypackage它正确地将其添加到项目,但它不会将其添加到我的component.json。

我正在尝试bower register mypackage C:/mypackage但它一直给我

 bower error Incorrect format 

我究竟做错了什么?

scheme1:公共凉亭登记

鲍尔build立的主要目的是以“非主观的”方式分享公共(客户端)的代码。 那么主要的用例就是拥有一个可公开访问的存储库(在GitHub上),该存储库register了一个名称和git存储库url。 我只是自己做了这个:

 bower register linksoup git://github.com/automatonic/linksoup 

这只是告诉bower服务器,当你install linksoup去获取代码在git://github.com/automatonic/linksoup存储库,并把它放在本地项目的component目录。

如果这是你想要做的,那么只要在github / etc上build立一个仓库,把你的代码放到那里,然后register所得到的仓库信息。

scheme2:私人依赖

有许多原因不要将您的代码发布到可公开访问的存储库中。 它可能不是开源的,如果你的mypackage代码不是公开的,那么你可能不应该在公共服务器上register它。此外,即使你可以register一个本地目录,只能在你的机器上工作……这打破了通过凉亭共享代码的目的。

如果你只是想要pipe理一个本地的,私人的依赖,那么我将会摆脱傻瓜的解决scheme:

 { "name": "myproject", "version": "1.0.0", "dependencies": { "jquery": "1.8.0", "twitter/bootstrap": "2.1.1", "mypackage": "file:///path/to/mypackage/.git" } } 

这只是说我的项目需要mypackage ,并使用git clone来检索它。 我的猜测是,这可以使用任何东西可以理解(包括本地存储库)。 但是你应该注意到,这可能会遇到问题的任何人在这个代码工作,无法访问您的本地path。

最佳的揣测

它看起来好像你可能假设了bower register是一个本地操作(告诉凉亭如何通过某种本地registryfind依赖)。 据我所知,这只是一个远程和公共注册,这就是为什么这是不受支持的。

你也可能正在寻找一种方法来做一些像npm一样的链接操作 。 也就是说,在一个依赖模块上工作,而不需要你的开发周期包含一个发布。

关于有多less人参与以及你想要完成什么的一些细节将有助于更有针对性的回答。

你可以添加任何git仓库如下:

 { "name": "myproject", "version": "1.0.0", "dependencies": { "jquery": "1.8.0", "twitter/bootstrap": "2.1.1", "myrepo":"git://myrepo.com/myrepo" } } 

您可以使用bower link

链接function允许开发人员轻松testing他们的软件包。 链接是一个两步的过程。

在项目文件夹中使用“bower链接”将创build一个全局链接。 然后,在其他一些软件包中,“bower link”将在组件文件夹中创build指向先前创build的链接的链接。

这可以很容易地testing一个包,因为变化会立即反映出来。 请注意,bower不会获取链接的软件包相关性。

Bower将在安装/更新时覆盖链接。

bower的大想法是轻松地分享您的项目的依赖关系。 所以使用本地回购应该限于testing

一旦你明白了这一点,你应该知道它并不是非常必要register你的包来作为依赖。

这是由于这个事实,即依赖性可以指定一个版本 ,一个文件夹或一个 。 所以你可以使用本地存储库

定义为凉亭包

首先,您需要将您的依赖关系定义为凉亭包 :

 # create the bower package cd /path/to/you-need-me bower init # answer questions… 

添加为项目依赖项

然后在你的主项目中,那个需要you-need-me依赖的项目,编辑bower.json文件来添加(或展开):

  "dependencies": { … "you-need-me": "file:///path/to/you-need-me/.git/" "you-need-me-windows": "C:/path/to/you-need-me-windows/.git/" } 

所以你不给一个版本,而是一个本地的git端点,即子目录.git/

安装依赖关系

在man项目中安装bower依赖关系:

 cd /path/to/main-project/ bower install 

失败

 bower you-need-me#* ENOTFOUND Package /path/to/you-need-me/ not found 

再次检查您的path,并指向您的依赖项的.git/目录。

成功

你应该得到像这样的东西:

 bower you-need-me#* not-cached file:///path/to/you-need-me/.git/#* bower you-need-me#* resolve file:///path/to/you-need-me/.git/#* bower you-need-me#* checkout master bower you-need-me#* resolved file:///path/to/you-need-me/.git/#b18c753c6f bower you-need-me#* install you-need-me#b18c753c6f 

写一个博客条目: 在注册包之前在本地testingbower.json 。