tslint 正确的错误/警告处理
Posted
技术标签:
【中文标题】tslint 正确的错误/警告处理【英文标题】:tslint proper error/warning handling 【发布时间】:2017-10-24 21:16:56 【问题描述】:我们的项目使用 Webpack 和 tslint。
预期:
我希望 tslint 错误产生构建错误,而 tslint 警告只产生控制台警告。
实际:
如果我们在配置中将emitErrors
设置为true
,任何 tslint 错误/警告都会产生错误。
如果emitErrors
是false
,任何 tslint 错误/警告都不会产生错误。
如何让它正常工作?
【问题讨论】:
【参考方案1】:我也有这个特殊的问题。我希望 lint 警告不会导致构建失败,但错误会导致构建失败。
我分叉了 tslint-loader 存储库并添加了几个新选项:
failOnError: bool failOnWarning: bool所以你可以使用其中一个,或者两者都使用,或者一个都不使用。很有用!
分叉: https://github.com/gunn4r/tslint-loader
【讨论】:
【参考方案2】:tslint-loader
您描述的症状是tslint-loader引起的,而不是tslint
本身引起的。
所有 linting 违规(警告或错误)都会一次性发送到 webpack。换句话说,linting 的结果由单个字符串表示。此字符串作为警告或错误发出。
因此,emitErrors
真正的意思是“将所有违规作为错误发出”。默认设置是“发出所有违规作为警告”。没有选项可以将警告作为警告发出,将错误作为错误发出。
This fork of tslint-loader 演示了如何让它按照你想要的方式运行。如果有任何错误,它将使构建失败,并显示错误。如果只有警告,则构建成功并显示警告。
尝试一下:
"tslint-loader": "github:mikepatrick/tslint-loader",
单独检查
这个限制是我更喜欢在构建过程中单独运行 linting(在 webpack 之外)的部分原因。
例如,如果您执行 yarn lint && yarn build
而不仅仅是 yarn build
之类的操作,则构建将在任何 linting 错误时失败,但如果只有警告则通过。 this answer的后半部分详细介绍了如何使用flow来做到这一点;你可以用 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
如果有 linting 错误会失败,但如果只有警告则通过。
【讨论】:
以上是关于tslint 正确的错误/警告处理的主要内容,如果未能解决你的问题,请参考以下文章