升级Github Super Linter至v5.0.0后TS Standard校验失败求助
解决Github Super Linter v5.0.0 TS Standard校验报错问题
升级Github Super Linter从v4.9.0到v5.0.0后,TS Standard校验所有文件时都会抛出解析错误,提示当前文件不在指定的tsconfig范围内,官方文档给出的方案无法解决,用CDK TypeScript项目可复现该问题。
解决方案
1. 强制指定项目自身的tsconfig给TS Standard
在项目根目录创建或修改.eslintrc.js,明确指定parserOptions指向你的项目tsconfig:
module.exports = { extends: 'ts-standard', parserOptions: { project: './tsconfig.json' } }
或者直接在package.json里添加TS Standard的配置项:
"ts-standard": { "project": "./tsconfig.json" }
2. 让Super Linter使用项目本地的ESLint配置
运行Docker容器时添加ESLINT_USE_LOCAL_CONFIG=true环境变量,强制Super Linter读取你项目里的自定义配置,而非它内置的默认配置:
docker run -e RUN_LOCAL=true -e VALIDATE_TYPESCRIPT_STANDARD=true -e ESLINT_USE_LOCAL_CONFIG=true -v .:/tmp/lint github/super-linter:v5.0.0
3. 扩展tsconfig的文件包含范围
打开项目的tsconfig.json,确保所有需要校验的文件都在include数组中。比如CDK初始化的项目默认可能没包含bin目录,需要手动添加:
"include": [ "bin/**/*", "lib/**/*", "test/**/*" ]
4. 临时回退到兼容版本的ts-standard(备选方案)
如果以上方法都不生效,可以在项目本地安装和v4.9.0兼容的ts-standard版本,让Super Linter优先使用本地工具:
npm install ts-standard@11.0.0 --save-dev
(注:11.0.0是v4.9.0内置的ts-standard版本,可根据实际情况调整)
问题根源
v5.0.0版本的Super Linter升级了内置的typescript-eslint依赖,启用了更严格的校验规则——要求所有被ESLint处理的文件必须在tsconfig的include范围内;而v4.9.0版本仅会抛出警告,不会阻断校验流程。
内容的提问来源于stack exchange,提问作者Gunar Maiwald
相关产品推荐
相关产品推荐

