m90*_*m90 4 teamcity continuous-integration npm gruntjs
我正在尝试在TeamCity服务器上自动构建我的项目.我grunt用来定义和配置我的任务.这在当地工作正常.但是,我在使用TeamCity(在Windows Server 2008上运行)识别grunt 为可执行文件时遇到问题,grunt因为它不可用而被调用时构建将失败.
我确实已经grunt-cli安装在服务器上,并且可以在我通过ssh登录时执行它(当我以这种方式触发时,构建脚本也会成功).
我在npm install调用grunt之前运行,并尝试grunt-cli使用preinstall我package.json喜欢的指令强制安装:
{
"name": "someName",
"version": "0.0.1",
"private": true,
"scripts" : {
"preinstall" : "npm install grunt-cli -g"
},
"devDependencies": {
"grunt": "~0.4.1",
"grunt-contrib-jshint": "~0.6.3",
"grunt-contrib-less": "~0.8.1",
"grunt-contrib-watch": "~0.5.3",
"grunt-contrib-requirejs": "~0.4.1",
"grunt-strip": "~0.2.1",
"grunt-bump": "0.0.11"
}
}
Run Code Online (Sandbox Code Playgroud)
我可以看到npm安装grunt-cli,但grunt在下一步中不可用.
我还尝试将其包装到一个bat文件中,或者使用多个构建步骤来安装依赖项并运行grunt任务.
有人对此有任何意见吗?
我试图让我们的TFS Build代理运行grunt-cli时遇到了同样的问题.最后,我刚刚更改了构建过程,以使用grunt-cli可执行文件的完整路径.
所以我改变了使用它:
grunt deploy
Run Code Online (Sandbox Code Playgroud)
使用这个:
"C:\Users\tfsservice\AppData\Roaming\npm\grunt.cmd" deploy
Run Code Online (Sandbox Code Playgroud)
我知道这只是一种解决方法,而不是一个真正的解决方案,但它应该足以让你前进.我希望这有帮助.
- 更新 -
通过简单地将"C:\ Users\tfsservice\AppData\Roaming \npm"(找到grunt.cmd文件)添加到我的系统路径,然后重新启动构建服务器,我能够正常工作.由于tfsservice既是用户又是正在运行的服务,因此需要重新启动; 只是重新启动服务可能就够了,但我没有测试过.
执行此操作后,grunt部署按预期在我们的构建中工作.
您正在 Widnows 服务器上运行 Teamcity 代理吗?Teamcity 有 Node.js/Grunt 插件: https: //github.com/jonnyzzz/TeamCity.Node 据我使用,使用 Teamcity 运行 grunt 没有问题。
| 归档时间: |
|
| 查看次数: |
4223 次 |
| 最近记录: |