我们的项目使用Webpack和tslint。
预期:
我希望tslint错误产生构建错误,而tslint警告只产生控制台警告。
实际:
如果我们在配置中将emitErrors
设置为true
,则任何tslint错误/警告都会产生错误。
如果emitErrors
为false
,则任何tslint错误/警告都不会产生错误。
如何使其正常工作?
答案 0 :(得分:2)
我也有这个特殊问题。我想让棉绒警告不是导致构建失败,而是导致构建失败的错误。
我分叉了tslint-loader存储库,并添加了两个新选项:
因此,您可以使用一个或两个,或者不使用。非常有用!
答案 1 :(得分:1)
<强> tslint装载机 强>
您描述的症状是由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*"
},
这样,如果有linting错误,运行yarn build:prod
将失败,但如果只有警告则会通过。