我正在使用構建定義在構建期間將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