2017-05-24 206 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是否有掉毛的错误会失败,但通过如果只有警告。