求助:eslint-plugin-import的import/order规则无法识别无命名导入
解决eslint-plugin-import的import/order规则无法识别无命名导入的问题
问题根源
无命名的副作用导入(如import 'moment/locale/fr')默认可能被import/order规则忽略,或无法被自定义pathGroups匹配,导致排序规则不生效、自动修复失效。
具体解决步骤
1. 显式开启副作用导入的规则检查
在import/order配置中添加sideEffects: true,强制规则将这类导入纳入排序逻辑,同时优化路径匹配选项确保精准识别:
'import/order': [ 'warn', { alphabetize: { caseInsensitive: false, order: 'asc', }, groups: ['builtin', 'unknown', 'external', 'internal', 'parent', 'sibling', 'index', 'type'], 'newlines-between': 'always', pathGroups: [ { group: 'builtin', pattern: 'react', position: 'before', }, { group: 'unknown', pattern: 'moment/locale/fr', position: 'before', // 确保路径匹配精准 patternOptions: { matchBase: true } }, ], pathGroupsExcludedImportTypes: ['react'], // 关键配置:不要忽略副作用导入 sideEffects: true }, ],
2. 调整分组归属(按需选择)
如果希望将moment/locale/fr归类到external组(而非unknown),只需修改pathGroups中的group值,并调整position确保它在builtin组之后:
{ group: 'external', pattern: 'moment/locale/fr', position: 'after' }
3. 确保自动修复功能正常
- 在ESLint配置文件中开启修复:
{ "fix": true } - 或者运行ESLint时添加
--fix参数:eslint ./src --fix
4. 验证规则生效
手动打乱导入顺序后,运行ESLint检查:
eslint your-target-file.js
若配置正确,会触发排序警告;执行修复命令后,import 'moment/locale/fr'会自动移动到指定分组位置。
内容的提问来源于stack exchange,提问作者Thanh-Quy Nguyen
相关产品推荐
相关产品推荐

