虽然有点晚,但我正在尝试解决许多相同的问题。以下是我目前所了解到的内容:
- 你可以使用grunt来构建你的库,并将它们放入分发文件夹中。这将处理所有的linting/minifying/concatenating等操作。
- 当准备好发布时,在svn中为其创建一个标签。(见下文...这有点奇怪)。
你不需要注册任何东西。只需使用安装路径来进行安装。
bower install svn+https://svn.mycompany.com/myproject
使用--save或--save-dev选项将其保存在你的bower.json文件中。
你可以通过以下几种方式访问SVN:
这些信息来自Bower首页。
当然,事情并不完全如此简单。我还发现了一些更多的信息:
你放入SVN存储库路径下的任何东西必须有三个文件夹:trunk、branches和tags。因此,指向某个子文件夹是完全可以的,但在该文件夹下,你必须有这三个文件夹。例如,假设你的主文件夹下有一个分发文件夹(即/trunk/dist)。你让grunt将最终产品放入这个文件夹中。然后你标记它(将trunk复制到tags)。所以你的目录结构看起来应该像这样:
myproject\tags\REL-1.0\dist\my-library.js
使用这种结构,bower就会出问题,如果你尝试做像下面这样的事情:
bower install https://svn.mycompany.com/myproject/tags/REL-1.0/dist
现在,如果您在dist下创建这三个文件夹,它就可以工作了。也就是说,如果文件夹结构如下所示:
myproject\tabs\REL-1.0\dist\tags\my-library.js
上述的 bower 命令可以使用(但那很丑陋)。
因此,您很可能需要为您的软件包拥有一个单独的存储库。哦,还有,在路径中的最后一个文件夹将成为 bower 安装后 vendors 文件夹中的文件夹。例如,在上面的示例中,库将在 vendors\dist 文件夹中... 这并不理想。因此,我目前正在考虑以下方法:
mypackages/MyLibrary/tags/REL-1.0
因此,该存储库是mypackages,每个库都有一个文件夹。在其中有三个必需的文件夹(trunk等)。然后,在每个版本发布下面的标记中有文件夹。
您可以像这样记录文件夹:
bower install svn+https://svn.mycompany.com/mypackages/MyLibrary#REL-1.0
您可以使用 #trunk 获取主干。有点奇怪。如果您没有提供任何版本(文件夹),它将从标签中获取最新的文件夹(不确定是按排序顺序还是提交日期完成)。如果在标签中没有文件夹,则会获取主干。不确定如何访问分支中的任何内容。
另外,如果您的仓库有安全性保护,如果您保存了身份验证信息,它将自动工作。不知道如果您没有保存身份验证信息,该怎么办。
希望这能帮到您!我自己也还在摸索中...