Reactjs 用于ESLint导入插件的正则表达式规则始终将类型导入保持在底部

Reactjs 用于ESLint导入插件的正则表达式规则始终将类型导入保持在底部,reactjs,regex,types,eslint,eslint-plugin-simple-import-sort,Reactjs,Regex,Types,Eslint,Eslint Plugin Simple Import Sort,我正在尝试配置插件,以便在运行eslint--fix时自动对导入进行排序 我希望始终将所有类型导入保持在底部。例如,对于给定的导入- 从“下一个/链接”导入链接; 从“下一步”导入类型{NextPage}; 从“下一个/路由器”导入类型{NextRouter}; 进口{ 盒子 }来自“@chakra ui/react”; 从“../../components/icons/custom”导入{MyCustomIcon}; 我想按这个顺序重新排序- 从“下一个/链接”导入链接; 进口{ 盒子 }来

我正在尝试配置插件,以便在运行
eslint--fix
时自动对导入进行排序

我希望始终将所有
类型
导入保持在底部。例如,对于给定的导入-

从“下一个/链接”导入链接;
从“下一步”导入类型{NextPage};
从“下一个/路由器”导入类型{NextRouter};
进口{
盒子
}来自“@chakra ui/react”;
从“../../components/icons/custom”导入{MyCustomIcon};
我想按这个顺序重新排序-

从“下一个/链接”导入链接;
进口{
盒子
}来自“@chakra ui/react”;
从“../../components/icons/custom”导入{MyCustomIcon};
从“下一步”导入类型{NextPage};
从“下一个/路由器”导入类型{NextRouter};
以下是我迄今为止在ESLint配置中编写的内容-

{
“规则”:{
“简单导入排序/导入”:[
“错误”,
{
“团体”:[
[
//Node.js是最重要的。
“^(路径)$”,
//React首先出现(类型导入除外)。
“^([反应](?!\\u0000$)+$”,
“^([react\\-dom](?!\\u0000$)+$”,
//接下来是Next.js(类型导入除外)。
“^(下一个/*(?!\\u0000$)+$”,
“^(下一个-.*(!\\u0000$)+$”,
//重要的第三方材料排在第三位。
“^(react hook form | fuse.js |(?!\\u0000$)+$”,
//情感排在第四位。
“^@emotion/react$”,
//@chakra ui排名第五。
“^@chakra ui/react$”,
//反应-*包装排在第六位。
“^([react-\\w](?!\\u0000$)+$”,
//接下来是其他第三方导入(类型导入除外)。
//“^@?\\w./\\-@”
“^([\\w./\\-@)](?!\\u0000$)+$”
],
[
//父项导入。将“…”放在最后。
"^\\.\\.(?!/?$)",
"^\\.\\./?$",
//其他相对导入。将相同的文件夹导入和`.`放在最后。
"^\\./(?=.*/)(?!/?$)",
"\\.(?!/?$)",
"^\\./?$",
//样式导入。
“^.+\\.css$”,
//图像和其他静态资产导入。
“^.+\\(svg | json)$”
],
[
//类型导入(`u0000$`)必须始终是最后一个。
“^@?(反应)。*\\u0000$”,
“^@?(下一步)。*\\u0000$”,
“^@?(反应-...*\\u0000$”,
“^@?\\w.*\\u0000$”,
“^[^.].\\u0000$”,
“^\\\..*\\u0000$”
]
]
}
]
}
}
在这个设置中,我希望从“next/router”中导入类型{NextRouter}的行
import将被推到底部,但它不是。我正在与正则表达式斗争,正如我所看到的,问题在于这种模式-

^(下一个/*(?!\\u0000$)+$
这似乎与所有内容都匹配,包括类型导入。我认为这是我最终结果需要修改的模式;通配符matcher
*
必须替换为其他(?)基本上可以表示-match“next”、match“next-”和match“next/,只要它不以
\u0000
结尾