我們的項目使用Webpack和tslint。tslint正確的錯誤/警告處理
預計:
我想tslint錯誤產生生成錯誤,並tslint警告產生只是安慰警告。
實際:
如果我們在配置設置emitErrors
到true
,任何tslint錯誤/警告會產生誤差。
如果emitErrors
是false
,任何tslint錯誤/警告都不會產生錯誤。
如何使其正常工作?
我們的項目使用Webpack和tslint。tslint正確的錯誤/警告處理
預計:
我想tslint錯誤產生生成錯誤,並tslint警告產生只是安慰警告。
實際:
如果我們在配置設置emitErrors
到true
,任何tslint錯誤/警告會產生誤差。
如果emitErrors
是false
,任何tslint錯誤/警告都不會產生錯誤。
如何使其正常工作?
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
是否有掉毛的錯誤會失敗,但通過如果只有警告。