【问题标题】:Host bower component on Visual Studio Online在 Visual Studio Online 上托管 bower 组件
【发布时间】:2014-11-27 16:31:09
【问题描述】:

问题:
我尝试做的是在视觉工作室在线托管凉亭组件。然而,这似乎不可能像我尝试的那样。

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

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

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

在我看来,问题在于在线连接到 Visual Studio 时的身份验证。

我试过了:

  • 使用了git credentials store,但在尝试下载 bower 组件时似乎没有任何效果。
  • 我还尝试使用“private-bower”,使用visual studio online 的备用用户名和密码将visual studio online 注册为代理。但是由于 private-bower 只支持 git:// 的 URL,所以无法在线注册 Visual Studio 的 URL。

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

【问题讨论】:

    标签: git tfs bower azure-devops


    【解决方案1】:

    * 2016 年 6 月更新

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


    原始回复

    我上周深入研究了这一点,并取得了一些有趣的发现。一种解决方法,以及在 TFS 中发现的一个可能的错误。我研究了 TFS 的本地版本,但它可能仍然适用。

    对于初学者,您需要使用HTTPS 连接到您的 TFS 实例。 Bower 从HTTPS 源中提取信息后,将提示输入传递给 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 Forums

    【讨论】:

    • 我会尽量让它这样工作。你说标签不起作用,但也许分支没问题。那么这就是我使用它的方式。
    • 我用 visualstudio.com 回购试过这个。将备用凭据添加到像git+https://user:password@tenant.visualstudio.com/DefaultCollection/Project/_git/Componet 这样的URL 可以工作,但是如果URL 中没有凭据,我不会被要求提供凭据,而是收到fatal: could not read Username for 'https://tenant.visualstudio.com': Invalid argument 错误。您能否通过 visualstudio.com 运行它?
    【解决方案2】:

    听起来您需要设置和使用备用凭据,而不是普通的 Microsoft 帐户。该过程在Buck's post中进行了解释。

    【讨论】:

    • 您可以使用 Fiddler 来阻止对话。此外,有些人在从旧版 Git 访问 VSO 时遇到了问题。您的 Bower 配置是否调用了正确的 Git?
    • 当我执行 git clone 时,它​​可以正常工作,但是使用 bower install 我得到了问题中描述的情况
    【解决方案3】:

    添加 git+https 对我有用。

    在 bower.json 中:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-17
      • 1970-01-01
      • 2014-04-17
      • 1970-01-01
      • 2015-02-26
      • 2016-04-22
      • 2017-08-13
      • 2015-08-30
      相关资源
      最近更新 更多