我已经在 TFS 构建服务器上安装了 npm 和 grunt。我使用安装了 grunt-clinpm 安装-g grunt-cli然后就可以运行了咕噜部署以我自己身份登录时从命令行。
Out TFS 构建运行为tfs服务尽管用户,并且当它尝试执行操作时咕噜部署它收到一条错误消息:
'grunt' is not recognized as an internal or external command, operable program or batch file.
因此,当我以我自己的身份登录构建服务器时,如果我运行命令提示符tfs服务我犯了同样的错误。所以我尝试做npm 安装-g grunt-cli从该命令提示符,它看起来已经正确安装并在 C:\Users\tfsservice\AppData\Roaming\npm 中创建了 grunt 文件,但运行时我仍然遇到相同的错误咕噜部署.
所以看起来 grunt-cli 没有安装tfs服务?当我得到 tfsservice %homepath% 时,我看到它被设置为\Windows\system32,而不是预期的\用户\tfsservice;也许它是一个服务帐户与它有关?
我看到在 Team City 中使用 grunt-cli 时也有人提出类似的问题,但建议使用 Team City 特定插件。
还有这个帖子上面说他们更改了 Team City 以不同用户的身份运行,然后一切就开始正常工作了。更改我们的构建以与以下用户不同的用户身份运行tfs服务但这对我来说并不是一个真正的选择。
任何建议表示赞赏。谢谢。
登录后tfs服务和跑步npm 安装-g grunt-cli它将所有 grunt 文件放入C:\Users\tfsservice\AppData\Roaming\npm,但找不到C:\Users\tfsservice\AppData\Roaming\npm\grunt.cmd文件直到我添加C:\Users\tfsservice\AppData\Roaming\npm到系统路径;您也许可以只为 tfsservice 用户的变量创建一个新的 Path 变量,但我希望它在以其他用户身份登录时也能工作。
一旦我这样做了咕噜部署当我以 tfsservice 身份手动登录并打开新的命令提示符时可以工作,但当实际的 TFS 构建作为 tfsservice 执行构建时仍然无法工作。起初,我只是修改了构建过程,使用其完整路径从命令行调用 grunt.cmd,如下所示:
"C:\Users\tfsservice\AppData\Roaming\npm\grunt.cmd" deploy
并确保我跑了npm 安装-g grunt-cli作为我所有构建机器上的 tfsservice,以确保 grunt 存在于每个构建服务器上的 tfsservice 用户的 AppData 目录中。这确实有效,但更多的是一种解决方法而不是修复方法。
结果最后一步是我只需重新启动 TFS 构建服务器。一旦我这样做了咕噜部署构建按预期工作,因此我不再需要指定完整路径:) 只需重新启动 tfsservice 可能就足够了,但为了安全起见,我只是重新启动了 PC。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)