TanStack Router 提供了专属的 ESLint 插件。该插件用于强制执行最佳实践,并帮助您避免常见错误。
该插件是一个独立包,需要单独安装:
npm install -D @tanstack/eslint-plugin-router
npm install -D @tanstack/eslint-plugin-router
或
pnpm add -D @tanstack/eslint-plugin-router
pnpm add -D @tanstack/eslint-plugin-router
或
yarn add -D @tanstack/eslint-plugin-router
yarn add -D @tanstack/eslint-plugin-router
或
bun add -D @tanstack/eslint-plugin-router
bun add -D @tanstack/eslint-plugin-router
ESLint 9.0 版本引入了全新的扁平化配置格式。相比传统的 .eslintrc 格式,这种新格式更灵活,支持更细粒度的配置。TanStack Router ESLint 插件兼容这一新格式,并提供了推荐配置来启用所有建议规则。
要启用所有推荐规则,请添加以下配置:
// eslint.config.js
import pluginRouter from '@tanstack/eslint-plugin-router'
export default [
...pluginRouter.configs['flat/recommended'],
// 其他配置...
]
// eslint.config.js
import pluginRouter from '@tanstack/eslint-plugin-router'
export default [
...pluginRouter.configs['flat/recommended'],
// 其他配置...
]
您也可以单独加载插件并配置所需规则:
// eslint.config.js
import pluginRouter from '@tanstack/eslint-plugin-router'
export default [
{
plugins: {
'@tanstack/router': pluginRouter,
},
rules: {
'@tanstack/router/create-route-property-order': 'error',
},
},
// 其他配置...
]
// eslint.config.js
import pluginRouter from '@tanstack/eslint-plugin-router'
export default [
{
plugins: {
'@tanstack/router': pluginRouter,
},
rules: {
'@tanstack/router/create-route-property-order': 'error',
},
},
// 其他配置...
]
在 ESLint 9.0 之前,最常见的配置方式是通过 .eslintrc 文件。TanStack Router ESLint 插件仍支持这种配置方式。
要启用所有推荐规则,请在 extends 中添加 plugin:@tanstack/eslint-plugin-router/recommended:
{
"extends": ["plugin:@tanstack/eslint-plugin-router/recommended"]
}
{
"extends": ["plugin:@tanstack/eslint-plugin-router/recommended"]
}
或者在 plugins 中添加 @tanstack/eslint-plugin-router,并配置所需规则:
{
"plugins": ["@tanstack/eslint-plugin-router"],
"rules": {
"@tanstack/router/create-route-property-order": "error"
}
}
{
"plugins": ["@tanstack/eslint-plugin-router"],
"rules": {
"@tanstack/router/create-route-property-order": "error"
}
}
TanStack Router ESLint 插件提供以下规则:
Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.