使用--project参数时,TSLint未排除tsconfig.json中指定的文件
别着急,这个问题我碰到过好多次,大概率是把TypeScript的exclude和TSLint的规则搞混了,或者配置细节没到位,咱们一步步来排查:
先确认TSLint是否真的读取了你的tsconfig.json
有时候--project参数的路径容易出错,比如你的tsconfig不在当前工作目录,得写完整的相对路径(比如--project ./src/tsconfig.json)。你可以运行这个命令看看TSLint实际扫描的文件列表:tslint --project ./tsconfig.json --list-files如果输出里还能看到
foldertoexclude下的.ts文件,说明TSLint没正确识别到你的排除规则。别把TS的exclude和TSLint的exclude搞混!
很多人误以为tsconfig.json里的exclude会自动作用于TSLint,但其实这俩是分开的:tsconfig的exclude是给TypeScript编译器用的,TSLint默认会参考,但如果你的tslint.json里没有同步配置exclude,或者有冲突的规则,就会失效。
解决方案是直接在你的tslint.json里添加exclude字段:{ "extends": "tslint:recommended", "exclude": ["foldertoexclude/**/*.ts"], // 其他规则... }检查通配符和路径是否正确
确认foldertoexclude确实在你的项目根目录下,通配符**/*.ts是匹配该文件夹下所有子目录的.ts文件,但如果你的路径有拼写错误(比如大小写不一致,系统是区分大小写的),或者要排除的是.tsx文件,那自然不会生效。清理TSLint缓存
有时候TSLint会缓存之前的检查结果,导致新的exclude规则不生效。试试清空缓存再重新检查:tslint --project ./tsconfig.json --clear-cache编辑器插件的缓存问题
如果你是在VSCode这类编辑器里看到的TSLint提示,可能插件没同步最新配置。试试重启编辑器,或者用快捷键重新加载窗口(VSCode里按Ctrl+Shift+P,输入"Reload Window")。
内容的提问来源于stack exchange,提问作者user11081980

