Angular 8项目:如何强制TSlint规则,阻止含错误时执行ng serve/ng build?
如何在Angular 8项目中强制TSlint规则阻断构建与启动
嗨,我之前也遇到过一模一样的问题!Angular 8默认确实不会把TSlint错误当成阻断构建/启动的条件,但咱们可以通过几个简单的配置来把规则“硬刚”起来,让开发者必须先修复错误才能继续操作。
1. 先把TSlint规则的严重性拉满
打开项目根目录的tslint.json,检查你要严格管控的规则的severity属性——默认有些规则是"warning"级别,警告不会阻断流程,得把需要强制的规则改成"error"级别。举个例子:
{ "rules": { "no-unused-variable": { "severity": "error" }, "no-unused-expression": { "severity": "error" }, "max-line-length": { "severity": "error", "limit": 120 } // 其他你需要强制执行的规则 } }
2. 修改Angular配置,让启动/构建先过TSlint这关
打开angular.json,找到你项目对应的配置(一般在projects节点下的项目名称里),给build和serve任务添加前置的TSlint检查:
给serve任务加前置检查
找到architect.serve节点,添加"dependsOn": ["lint"],这样每次启动项目时都会先跑TSlint:
"serve": { "builder": "@angular-devkit/build-angular:dev-server", "dependsOn": ["lint"], // 启动前先执行TSlint检查 "options": { "browserTarget": "你的项目名称:build" } }
给build任务加前置检查
同样在architect.build节点里添加"dependsOn": ["lint"],确保构建前必须通过TSlint:
"build": { "builder": "@angular-devkit/build-angular:browser", "dependsOn": ["lint"], // 构建前先执行TSlint检查 "options": { // 你项目原本的构建配置 } }
设置完之后,只要项目里存在TSlint错误(也就是severity设为error的规则触发时),ng serve和ng build就会直接失败,终端会抛出错误提示,开发者必须先把所有TSlint错误修复完才能继续。
额外小技巧:临时跳过检查(不推荐)
如果有特殊情况需要临时绕过检查,也可以用命令行参数:
ng serve --no-lint
不过这种方式尽量少用,毕竟咱们要的就是强制规则嘛。
另外还要确认一下项目的TSlint依赖是否正常,如果之前不小心卸载过,可以重新安装:
npm install tslint --save-dev
内容的提问来源于stack exchange,提问作者user1671727
相关产品推荐
相关产品推荐

