Cod*_*ila 8 tfs build-definition npm
然后我在构建定义中的MSBuild参数中添加了以下属性:
/p:TreatWarningsAsErrors=False
Run Code Online (Sandbox Code Playgroud)
但它还没有工作.
我还通过右键单击每个项目进行交叉检查,并且没有选中"将警告视为错误"选项.
我从post-build脚本调用npm install命令.
在我尝试但未成功的更改之后,我还重新启动了构建控制器和构建代理.
感谢这方面的任何帮助.
可以使用该loglevel选项来根本不出现警告。这避免了在标准错误中显示警告的问题,从而停止构建或编写警告错误。
我通常使用npm install --loglevel=error --no-update-notifier. 我注意到更新检查也会中断 npm 的构建过程。
MSBuild参数在这里不会帮助你...后构建脚本在MSBuild完成执行后运行.
问题是npm正在向stderr流写入警告,TFS会检测并报告为错误.您可以通过将错误流重定向到stdout这样来抑制此问题:
npm install 2>&1
Run Code Online (Sandbox Code Playgroud)
但是,这将抑制错误以及警告,在您的情况下可能会或可能不会接受.在我们的例子中,我们在预构建脚本期间从PowerShell脚本调用npm install.我们重定向输出,但是我们也扫描输出,寻找字符串,ERR!如下所示:
& npm install *>&1 | ForEach-Object {
$obj = $_
if ( $obj -is [System.Management.Automation.ErrorRecord] ) {
$s = $obj.Exception.Message
}
else {
$s = $obj.ToString()
}
if ( $s.Contains('ERR!') ) {
Write-Error $s
}
else {
Write-Output $s
}
}
$LASTEXITCODE = 0
Run Code Online (Sandbox Code Playgroud)
请注意,我们也将其设置$LASTEXITCODE为零,以便PowerShell不会将退出代码从npm传递回TFS.
小智 6
在 CI 服务器中,这是一个非常常见的问题,每当我们运行“npm build”时管道都会失败
我们收到一些警告,CI 服务器将它们视为错误,并且管道被终止。
要消除此错误,只需在管道中添加环境变量,如下所述:
env:
CI: false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2553 次 |
| 最近记录: |