如何显式标记包为internal规范导入排序?pathGroups匹配异常求助
问题原因及解决方法
原因
你配置的pathGroups规则中,{app,components,shared,utils}/**这个通配符模式仅匹配带有子路径的内部模块导入(比如shared/components/Button),而直接导入shared根模块的写法(import { Button, Tag } from "shared")并不符合该模式,因此ESLint会将其识别为外部依赖,无法归入internal组。
解决方法
调整pathGroups的pattern,让它同时匹配根模块和子路径导入,有两种常用方式:
方式1:修改现有pattern,覆盖根模块和子路径
更新规则中的pattern为{app,components,shared,utils}{/**,},这样既匹配shared根模块,也匹配shared/**这类子路径:
"pathGroups": [ { "pattern": "react", "group": "external", "position": "before" }, { "pattern": "{app,components,shared,utils}{/**,}", "group": "internal", "position": "after" } ]
方式2:新增单独匹配根模块的规则
如果需要更清晰的规则拆分,可以添加一个专门匹配根模块的pathGroup条目,放在子路径规则的前面(确保优先级):
"pathGroups": [ { "pattern": "react", "group": "external", "position": "before" }, { "pattern": "{app,components,shared,utils}", "group": "internal", "position": "after" }, { "pattern": "{app,components,shared,utils}/**", "group": "internal", "position": "after" } ]
额外注意
确保你的ESLint配置中已经开启了import/order规则,并且pathGroupsExcludedImportTypes没有包含这些内部模块名,否则可能会影响规则生效。
内容的提问来源于stack exchange,提问作者Red Baron
相关产品推荐
相关产品推荐

