如何禁用ESLint的import/no-extraneous-dependencies规则的特定报错?
针对ESLint
import/no-extraneous-dependencies 规则忽略指定包报错的实现方案 方案1:全局配置忽略指定包(推荐)
import/no-extraneous-dependencies 规则实际提供了 allowModules 配置项,可直接指定要跳过校验的包名,不会影响其他包的正常规则校验:
在你的ESLint配置文件(.eslintrc.json/.eslintrc.js等)的rules字段中添加如下配置:
// .eslintrc.js 示例 module.exports = { rules: { "import/no-extraneous-dependencies": [ "error", { allowModules: ["my-package"] // 填入要忽略的包名,支持配置多个 } ] } }
方案2:局部单行/单文件忽略
如果仅个别位置引用了该包,不需要全局生效,可直接在对应代码位置加注释禁用规则:
- 单行忽略(仅跳过当前import行的校验)
// eslint-disable-next-line import/no-extraneous-dependencies import myPkg from 'my-package'
- 单文件全局忽略(在文件顶部加注释,整个文件都不会触发该规则校验)
/* eslint-disable import/no-extraneous-dependencies */ import myPkg from 'my-package' import otherPkg from 'other-pkg' // 后续所有导入都不会触发该规则报错
方案3:输出结果过滤(仅当你无法修改ESLint配置时使用)
如果确实只能通过命令行过滤输出结果,可使用awk脚本实现过滤逻辑,仅存在目标报错的文件不会输出任何内容,存在其他报错的文件会正常输出完整报错信息:
eslint your_check_path | awk ' /^[[:space:]]*.*'\''my-package'\'' should be listed in the project'\''s dependencies/ { skip_err=1 } /^[^[:space:]]+\.(js|jsx|ts|tsx|vue)$/ { if (current_file && has_valid_err) print file_buffer current_file = $0 file_buffer = $0 "\n" has_valid_err = 0 skip_err = 0 } /^[[:space:]]/ { if (!skip_err) { file_buffer = file_buffer $0 "\n" has_valid_err = 1 } skip_err = 0 } END { if (current_file && has_valid_err) print file_buffer } '
内容的提问来源于stack exchange,提问作者Leo Jiang
相关产品推荐
相关产品推荐

