allinssl/frontend/environment/eslint/src/next.js

49 lines
1.2 KiB
JavaScript

import js from '@eslint/js'
import globals from 'globals'
import tseslint from 'typescript-eslint'
import { rules as prettierRules } from 'eslint-config-prettier'
import * as pluginReactHooks from 'eslint-plugin-react-hooks'
import * as pluginReact from 'eslint-plugin-react'
import * as pluginNext from '@next/eslint-plugin-next'
import baseConfig from './index.js'
// 配置 next.js 的 eslint 规则
const nextConfig = tseslint.config([
...baseConfig,
js.configs.recommended,
prettierRules,
...tseslint.configs.recommended,
{
...pluginReact.configs.flat.recommended,
languageOptions: {
...pluginReact.configs.flat.recommended.languageOptions,
globals: {
...globals.serviceworker,
},
},
},
{
plugins: {
'@next/next': pluginNext,
},
rules: {
...pluginNext.configs.recommended.rules,
...pluginNext.configs['core-web-vitals'].rules,
},
},
{
plugins: {
'react-hooks': pluginReactHooks,
},
settings: { react: { version: 'detect' } },
rules: {
...pluginReactHooks.configs.recommended.rules,
// React scope no longer necessary with new JSX transform.
'react/react-in-jsx-scope': 'off',
},
},
])
export default nextConfig