2016-01-21 27 views
3

我正在使用构建定义在构建期间将npm警告作为错误。 enter image description here禁用Npm警告作为错误:构建定义tfs

我加入下列财产中的MSBuild参数生成定义

/p:TreatWarningsAsErrors=False 

,但还没有成型。

我也通过右键单击每个项目进行交叉检查,并且它们都没有选项“将警告视为错误”选中。

我打电话给npm install命令来自后生成脚本。

我也重新启动构建控制器和构建代理后,我试过但没有成功的变化。

赞赏这方面的任何帮助。

回答

0

请尽量使用正确的语法,而不是你的

/p:TreatWarningsAsErrors="false" 
+0

它不适用于TFS2015.3中的XAML构建定义。来自NPM的警告仍被视为错误。 – Matthieu

0

您可以在安装过程中沉默NPM与--silent说法:

npm install --silent 

你不需要任何的MSBuild这个说法办法。

5

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。