2017-05-24 212 views
0

我們的項目使用Webpack和tslint。tslint正確的錯誤/警告處理

預計:

我想tslint錯誤產生生成錯誤,並tslint警告產生只是安慰警告。

實際:

如果我們在配置設置emitErrorstrue,任何tslint錯誤/警告會產生誤差。

如果emitErrorsfalse,任何tslint錯誤/警告都不會產生錯誤。

如何使其正常工作?

回答

0

tslint裝載機

您所描述的症狀是由tslint-loader造成的,不tslint本身。

所有違規行爲(警告或錯誤)都會一次性發送給webpack。換句話說,linting的結果由單個字符串表示。該字符串作爲警告或錯誤發出。

因此,emitErrors確實意味着「將所有違規排除爲錯誤」。默認是「排除所有違規行爲作爲警告」。沒有選項可將警告作爲警告和錯誤發送爲錯誤。

This fork of tslint-loader演示瞭如何使其按照自己的方式執行。如果有任何錯誤,它將會失敗,並顯示錯誤。如果只有警告,構建將會成功並顯示警告。

要嘗試一下:

"tslint-loader": "github:mikepatrick/tslint-loader", 

分別

這種限制的原因之一,我喜歡運行作爲我構建的一部分單獨掉毛(外面的WebPack的)掉毛處理。

例如,如果您執行的操作類似yarn lint && yarn build而不是yarn build,則構建將在任何linting錯誤時失敗,但如果只有警告則通過構建。 this answer的後半部分詳細介紹瞭如何用流程做到這一點;你可以做同樣的事情tslint:

"scripts": { 
    "start": "webpack-dev-server.....", 
    "build:prod": "lint && webpack src/index.js dist/bundle.js -p", 
    "lint": ".\\node_modules\\.bin\\tslint src\\**\\*.ts*" 
    }, 

這種方式運行yarn build:prod是否有掉毛的錯誤會失敗,但通過如果只有警告。