在Visual Studio Online上托管bower组件



问题:
我尝试做的是在Visual Studio Online上托管一个bower组件。然而,这似乎是不可能的,我尝试这样做的方式。

我创建了一个bower组件,并使用Brian Ford的教程将其在线签入Visual Studio。这个 bower 组件现在安全地驻留在我的一个可视化工作室 git 项目中。但是,当我尝试这样做时:

bower install https://myAccount.visualstudio.com/DefaultCollection/_git/bower-component    

它把一些东西放在bower_components文件夹中,但这不是我推送到Visual Studio Online的Bower组件。在bower_components文件夹中是一个bower.json,有一些不正确的值和一个"索引"文件,没有文件扩展名。当我在编辑器中打开这个"索引"文件时,它看起来像Visual Studio Online的登录页面。

对我来说,问题似乎出在在线连接到Visual Studio时的身份验证上。

我试过了:

  • 使用git凭据存储,但在尝试下载bower组件时似乎没有任何效果。
  • 我还尝试使用"private-bower",使用Visual Studio Online的替代用户名和密码在线注册Visual Studio Online作为代理。但是,无法在线注册Visual Studio的URL,因为private-bower仅支持 git://URL。

有没有人有尝试让它与Visual Studio Online或任何团队基础服务器一起工作的经验?或者有人有其他可能的解决方案来解决这个问题吗?

* 2016 年 6 月更新

TFS 2015(从更新 3 开始)现在支持 SSH 连接到 Git 存储库。Bower可能不再需要使用该git+https://来检索代码,但需要您进行一些测试。


原始响应

我上周深入研究了这个问题,并发现了一些有趣的发现。解决方法,以及 TFS 中标识的可能 bug。我研究了 TFS 的内部部署版本,但它可能仍然适用。

对于初学者,您需要使用HTTPS连接到 TFS 实例。从HTTPS源拉取 Bower 时,将提示输入传递给 TFS 的凭据。然后,由于 TFS 无法识别 Bower 也期望从在线 Git 存储库获得的".git"后缀,因此您需要调整协议。

bower install git+https://tfs.domain.com/tfs/Collection/_git/MyComponent

这应该足以让 Bower 与 TFS 对话并拉动组件。您需要在运行时输入凭据,除非您愿意将它们放在 URL 本身中(我不会)。


现在,如果您使用版本标记提交,您将遇到问题(就像您希望正确对组件进行版本控制一样)。正如你已经注意到的那样,TFS 似乎不能很好地处理标签。如果执行此操作,当 bower 运行结帐时,TFS 中会引发错误。

InvalidCastException: Unable to cast object of type 'Microsoft.TeamFoundation.Git.Server.TfsGitTag' to type 'Microsoft.TeamFoundation.Git.Server.TfsGitCommit'.

我在 http://tfs.domain.com:8080/tfs/_oi 查看管理日志时发现了这一点。

如果我尝试签出一个没有标记任何提交的 bower 组件,事情就会成功。

此信息也发布在 MSDN 论坛上。

听起来您需要设置和使用备用凭据,而不是正常的Microsoft帐户。这个过程在巴克的帖子中进行了解释。

添加 git+https 对我有用。

这是在bower.json中:

 "dependencies": {
     "some-component": "git+https://domain.com/path/to/git"
  }

最新更新