我正在使用构建定义在构建期间将npm警告作为错误。 禁用Npm警告作为错误:构建定义tfs
我加入下列财产中的MSBuild参数在生成定义:
/p:TreatWarningsAsErrors=False
,但还没有成型。
我也通过右键单击每个项目进行交叉检查,并且它们都没有选项“将警告视为错误”选中。
我打电话给npm install命令来自后生成脚本。
我也重新启动构建控制器和构建代理后,我试过但没有成功的变化。
赞赏这方面的任何帮助。
我正在使用构建定义在构建期间将npm警告作为错误。 禁用Npm警告作为错误:构建定义tfs
我加入下列财产中的MSBuild参数在生成定义:
/p:TreatWarningsAsErrors=False
,但还没有成型。
我也通过右键单击每个项目进行交叉检查,并且它们都没有选项“将警告视为错误”选中。
我打电话给npm install命令来自后生成脚本。
我也重新启动构建控制器和构建代理后,我试过但没有成功的变化。
赞赏这方面的任何帮助。
请尽量使用正确的语法,而不是你的
/p:TreatWarningsAsErrors="false"
您可以在安装过程中沉默NPM与--silent
说法:
npm install --silent
你不需要任何的MSBuild这个说法办法。
MSBuild参数不会帮助你在这里......后生成脚本MSBuild完成执行后运行。
的问题是,NPM被写入它的警告的stderr
流,它TFS检测并作为错误报告。您可以通过重定向错误流像这样抑制这stdout
:
npm install 2>&1
然而,这将抑制错误和警告,这可能是也可能不是你的情况可以接受。在我们的例子中,我们在预生成脚本期间从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
请注意,我们还设置$LASTEXITCODE
为零,以便PowerShell不会从NPM通过退出代码回到TFS。
它不适用于TFS2015.3中的XAML构建定义。来自NPM的警告仍被视为错误。 – Matthieu