我们的项目使用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
是否有掉毛的错误会失败,但通过如果只有警告。