Web上有很多关于如何使用bower来使用软件包的例子,但它缺少一个关于如何注册/部署/发布(无论你喜欢哪个术语)软件包的简单演练。
假设我正在开发自己的js包,我该如何将其部署到私有存储库/文件夹? 我应该为此目的使用凉亭吗?或者我应该使用grunt任务吗?
让我更准确地说明我需要的东西: 我想创建一个消耗其他凉亭包的js项目。 我想将几十个js文件连接成一个或几个js文件(每个文件都意味着一个bower包),lint它们,缩小它们,测试它们并粉碎它们的骨头,而不是简单地部署每个最终的js文件进入存储库(在我的情况下 - SVN,因为我们在公司使用的是什么)。
就像我挖掘网络一样,在我看来,这不是凉亭的任务,对于咕噜/蚂蚁来说这是一项任务。 我是对的吗?
答案 0 :(得分:4)
有点晚了,但我目前正试图想出很多相同的事情。这是我到目前为止所发现的。
你不需要注册任何东西。只需将安装与存储库的路径一起使用即可。
bower install svn + https://svn.mycompany.com/myproject
使用--save或--save-dev选项将其保存在bower.json文件中。
您可以通过以下几种方式点击SVN:
这来自Bower Home Page。
当然不是那么容易。我发现了一些:
作为SVN存储库的路径必须下面有三个文件夹:trunk,branches和tags。因此,指向某个子文件夹是完全正确的,但在此之下,您必须拥有这三个文件夹。即假设您的主文件夹下有一个分发文件夹(即/ trunk / dist)。你有咕噜声将最终产品放入这个文件夹。然后标记它(将主干复制到标签)。所以你的目录结构看起来像:
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安装它之后,它将是vendor文件夹中的文件夹。即在上面的例子中,库将在vendors \ dist文件夹中....不理想。所以,我现在正在看这样的事情:
mypackages/MyLibrary/tags/REL-1.0
因此,存储库是mypackages,每个库都有一个文件夹。在那下面是三个必需的文件夹(主干等)。然后我在每个版本的标签下都有文件夹。
您可以注意这样的文件夹:
bower install svn+https://svn.mycompany.com/mypackages/MyLibrary#REL-1.0
你可以使用#trunk来获取主干。有点奇怪。如果您不提供任何版本(文件夹),它将从标签获取最新文件夹(不确定是通过排序顺序还是在提交日期完成)。如果标签中没有文件夹,则会获得中继。不知道怎么去分支机构。
此外,如果您的存储库具有安全性,如果您已保存身份验证信息,它将正常工作。如果您没有保存身份验证信息,不知道如何工作。
我希望这有帮助!我还在自己搞清楚......
答案 1 :(得分:2)
我在过去几周取得了很大的进步,我很高兴将我的发现分享给像我这样的任何笨蛋+凉亭新秀。
看来bower默认注册到http://bower.herokuapp.com注册表,它只支持git协议(因为它意味着服务器公共库)。
因此,如果您想在私有存储库中发布自己的js库,那么使用默认注册表并不是一个好习惯。那里有很多bower注册表实现。就个人而言,我是一个java人,所以在我的操场上我使用https://github.com/Softpagehomeware/bower-java-registry,但也有npm,python和其他注册表实现。
如果您想在另一个项目中使用您的包,只需在您.bowerrc文件中定义查找位置:
{
"registry": {
"register": "http://myhost/bower-java-server",
"publish": "http://myhost/bower-java-server",
"search": [
"http://myhost/bower-java-server"
, "https://bower.herokuapp.com"
]
},
"directory": "bower_components"
}
这样,当你有一个bower依赖项时,它首先在你的私人注册表中查找,如果它没有找到它,它会搜索herokuapp注册表。
至于在我的私人git存储库中托管分发包,我使用了grunt-build-control,它可以将你带到dist文件夹并将其推送到你的可分发存储库(在你的bower注册表中注册)。