使用Yarn运行package.json中ESLint脚本无错误反馈问题排查
问题原因与解决办法
核心原因
这是Shell通配符展开逻辑差异导致的:
- 直接在终端执行
yarn eslint ./src/**/*.{js,ts,tsx} package.json时,你的终端Shell(比如bash、zsh)会先把./src/**/*.{js,ts,tsx}通配符展开成src目录下所有匹配扩展名的具体文件路径,再把这些路径传给ESLint,ESLint能正常扫描文件并输出错误。 - 但在package.json脚本里执行
yarn lint时,Yarn会直接把未展开的通配符字符串原封不动传给ESLint,而ESLint本身对**递归通配符的处理依赖glob模块,若你的ESLint配置或环境未正确启用该功能,它就无法识别这个通配符,相当于没找到要扫描的文件,自然不会输出错误。
解决办法
修改package.json里的lint脚本,改用ESLint原生支持的扫描方式,替换通配符写法:
"lint": "eslint src --ext .js,.ts,.tsx package.json"
src指定要扫描的根目录--ext .js,.ts,.tsx明确指定要检查的文件扩展名,ESLint会自动递归扫描src下所有符合的文件- 保留
package.json继续检查配置文件
修改后执行yarn lint,ESLint就能正确识别所有目标文件,正常输出代码规范错误了。
内容的提问来源于stack exchange,提问作者Leff
相关产品推荐
相关产品推荐

