ESlint无法找到相对路径的Babel配置文件,咨询路径解析规则
ESLint 相对路径解析规则与 Babel 配置文件查找问题解析
核心原因:路径解析基准是执行目录而非配置文件目录
ESLint 对 parserOptions.babelOptions.configFile 中的相对路径,不会以当前 ESLint 配置文件(.eslintrc.yml)所在目录为基准解析,而是以你运行 ESLint 命令时的终端工作目录作为路径基准。
比如你的子项目在仓库子目录里,但你是从仓库根目录执行 ESLint 命令,那写的 ./.babelrc.json 会被解析成仓库根目录下的文件,而非子项目里的同名文件,自然会报找不到的错误。
可行解决方法
- 用
${__dirname}锚定配置文件目录:ESLint 为配置文件提供了内置变量${__dirname},可以直接获取当前 ESLint 配置文件所在目录的绝对路径,拼接 Babel 配置文件路径即可:
这种方式能确保路径始终指向和 ESLint 配置文件同级的 Babel 配置,不受执行目录影响。parserOptions: babelOptions: configFile: ${__dirname}/.babelrc.json - 切换到子项目目录执行 ESLint:如果每次进入子项目目录再运行
eslint .,相对路径./.babelrc.json就能正确找到文件,但在大型项目里这种操作不够高效。
额外说明
ESLint 的这种逻辑和它的工作机制相关:它会从执行目录开始向上查找配置文件,但对于传递给 Babel 解析器的路径参数,默认沿用执行时的工作目录作为基准,而非配置文件所在的子目录。
内容的提问来源于stack exchange,提问作者Mike Lischke
相关产品推荐
相关产品推荐

