2016-01-21 45 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。