Javascript 如何在Bower中注册本地git包?

Javascript 如何在Bower中注册本地git包?,javascript,git,package,bower,bower-register,Javascript,Git,Package,Bower,Bower Register,如何在bower中注册本地git包 我当前的component.json如下所示 { "name": "myproject", "version": "1.0.0", "dependencies": { "jquery": "1.8.0", "twitter/bootstrap": "2.1.1" } } 不过,我还想添加一个我在C:/mypackage上创建的包,它是一个带有标记版本的git存储库。 当我执行bower安装--save C:/mypackage

如何在bower中注册本地git包

我当前的component.json如下所示

{
  "name": "myproject",
  "version": "1.0.0",
  "dependencies": {
    "jquery": "1.8.0",
    "twitter/bootstrap": "2.1.1"
  }
}
不过,我还想添加一个我在
C:/mypackage
上创建的包,它是一个带有标记版本的git存储库。 当我执行
bower安装--save C:/mypackage
时,它会正确地将其添加到project中,但不会将其添加到my component.json中

我正在尝试
bower注册mypackage C:/mypackage
,但它一直给我

bower error Incorrect format

我做错了什么?

您可以按如下方式添加任何git存储库:

{
  "name": "myproject",
  "version": "1.0.0",
  "dependencies": {
    "jquery": "1.8.0",
    "twitter/bootstrap": "2.1.1",
    "myrepo":"git://myrepo.com/myrepo"
  }
}
备选方案1:公共凉亭登记 Bower的构建主要是为了以“非固执己见”的方式共享公共(客户端)代码。因此,主要的使用案例是拥有一个可公开访问的存储库(在GitHub上),它是
register
d,带有名称和git存储库url。我自己就是这么做的:

bower register linksoup git://github.com/automatonic/linksoup
这只是告诉bower服务器,当您
安装linksoup
时,您可以在
git://github.com/automatonic/linksoup
存储库,并将其放在本地项目的
组件
目录中

如果这是您想要做的,那么只需在github/etc上设置一个存储库,将您的代码推到那里,然后使用生成的存储库信息注册

备选案文2:私人依赖 有很多理由不将代码发布到可公开访问的存储库中。它可能不是开源的,等等。如果您的
mypackage
代码不打算公开,那么您可能不应该
在公共bower服务器上注册它。。。此外,即使您可以注册一个本地目录,它也只能在您的机器上工作……这违背了通过bower共享代码的目的

如果您只想让bower管理一个本地的私有依赖项,那么我将重复使用以下解决方案:

{
  "name": "myproject",
  "version": "1.0.0",
  "dependencies": {
    "jquery": "1.8.0",
    "twitter/bootstrap": "2.1.1",
    "mypackage": "file:///path/to/mypackage/.git"
  }
}
这只是说
myproject
需要
mypackage
,并使用git clone检索它。我猜想这可以使用git能够理解的任何东西(包括本地存储库)。但是,您应该注意,这可能会遇到问题,因为其他任何使用此代码的人都无法访问您的本地路径

最佳猜测 在我看来,您可能认为
bower register
是一个本地操作(告诉bower如何通过某种本地注册表找到依赖项)。据我所知,这只是一个远程和公开注册,这就是为什么这是不受支持的

你也可能在寻找一种方法来做一些事情,比如。也就是说,在依赖模块上工作,而不总是让开发周期包含发布

关于参与的人员数量和您试图完成的工作的一点细节将有助于获得更具针对性的答案。

最重要的想法是方便地共享项目的依赖关系。因此使用本地回购应仅限于测试

一旦您理解了这一点,您就应该知道,为了将包用作依赖项,
注册
包并不是严格必要的

这是因为bower Dependence可以指定版本、文件夹或包。因此您可以使用本地存储库

定义为bower包 首先,您需要:

#创建bower包
cd/path/to/你需要我吗
鲍尔初始
#回答问题…
添加为项目依赖项 然后,在您的主项目中,需要
youneedme
依赖项的项目,编辑要添加(或扩展)的
bower.json
文件:

因此,您不提供版本,而是提供本地
git
端点,即子目录
.git/

安装依赖项 在man项目中,使用以下内容安装bower依赖项:

cd /path/to/main-project/
bower install
失败 再次检查路径,并指向依赖项的
.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

写一篇关于这个的博客:。

你可以使用
bowerlink

链接功能允许开发人员轻松测试他们的包。 链接是一个两步过程

在项目文件夹中使用
bower链接
,将创建全局链接。 然后,在另一个包中,
bowerlink
将在components文件夹中创建一个链接 指向先前创建的链接

这允许轻松测试包,因为更改将立即反映出来。 请注意,bower不会获取链接的包依赖项

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


请记住指定分支:“myrepo”:git://myrepo.com/myrepo#branch“@FrederikWordenskjold-它将默认为master分支,但仍然是一条很棒的评论!我给你投了赞成票,我只是想添加这个小细节。问题清楚地说是本地git包,但这个答案仍然得到33票赞成票?关键是,你可以做任何git存储库。不管是远程的还是本地的。我只是想说明这是可能的。这是值得赞赏的——我来这里是想了解如何使用远程存储库而不是本地存储库来实现这一点。您可以手动使用符号链接,而无需通过bower。这也适用于其他人,但我不确定Windows开发人员。这是我发现的唯一可以与其他开发人员共享的方法。@xixixao bower链接分两步完成,因此如果您移动包,只需更新bower链接,但是如果您直接链接,那么如果您移动包,则需要手动更新所有相关包。的.git部分file:///path/to/you-need-me/.git/ 不明显,谢谢。Ye,使用file://protocol,不参考实际回购协议是行不通的。。。bower只是挂起了…我还必须使用一个私有的git存储库,但我想从一个共享的网络文件夹位置进行操作。在玩了一些游戏之后,我使用以下格式使其工作:
“file:////networkdomain.com/path/to
bower you-need-me#*              ENOTFOUND Package /path/to/you-need-me/ not found
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