重构: 升级ESLint配置并优化项目结构 │

│                                                                                                                    │
│   - 迁移至ESLint新版配置格式(eslint.config.mjs)                                                                    │
│   - 添加Next.js ESLint配置支持                                                                                     │
│   - 新增样式类型定义文件                                                                                           │
│   - 优化TypeScript和Vite配置                                                                                       │
│   - 更新Tailwind CSS配置                                                                                           │
│                                                                                                                    │
│   🤖 Generated with [Claude Code](https://claude.com/claude-code)                                                  │
│                                                                                                                    │
│   Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
贺海国
2025-10-22 19:02:47 +08:00
parent 9866a86f32
commit 8da01a207d
9 changed files with 2874 additions and 31 deletions

View File

@@ -1,15 +0,0 @@
node_modules
dist
build
*.log
.env
.env.local
.env.development.local
.env.test.local
.env.production.local
coverage
.nyc_output
.cache
.temp
.vscode
.idea

25
crop-x/eslint.config.mjs Normal file
View File

@@ -0,0 +1,25 @@
import { dirname } from "path";
import { fileURLToPath } from "url";
import { FlatCompat } from "@eslint/eslintrc";
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const compat = new FlatCompat({
baseDirectory: __dirname,
});
const eslintConfig = [
...compat.extends("next/core-web-vitals", "next/typescript"),
{
ignores: [
"node_modules/**",
".next/**",
"out/**",
"build/**",
"next-env.d.ts",
],
},
];
export default eslintConfig;

2835
crop-x/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -79,6 +79,7 @@
"@vitejs/plugin-react-swc": "^3.10.2", "@vitejs/plugin-react-swc": "^3.10.2",
"autoprefixer": "^10.4.20", "autoprefixer": "^10.4.20",
"eslint": "^9.11.1", "eslint": "^9.11.1",
"eslint-config-next": "15.5.6",
"eslint-plugin-react-hooks": "^5.1.0-rc.0", "eslint-plugin-react-hooks": "^5.1.0-rc.0",
"eslint-plugin-react-refresh": "^0.4.12", "eslint-plugin-react-refresh": "^0.4.12",
"husky": "^9.1.6", "husky": "^9.1.6",

View File

@@ -1,4 +1,4 @@
import {Navbar1} from "@/components/layouts/NavBar" import {Navbar1} from "@/components/layouts/Navbar"
import {SideBarOld} from '@/components/layouts/SideBar/SideBarOld' import {SideBarOld} from '@/components/layouts/SideBar/SideBarOld'
import '@/styles/globals.css' import '@/styles/globals.css'

9
crop-x/src/types/style.d.ts vendored Normal file
View File

@@ -0,0 +1,9 @@
declare module '*.css' {
const content: { [className: string]: string };
export default content;
}
declare module '@/styles/*.css' {
const content: { [className: string]: string };
export default content;
}

View File

@@ -1,4 +1,5 @@
/** @type {import('tailwindcss').Config} */ /** @type {import('tailwindcss').Config} */
export default { export default {
darkMode: ["class"], darkMode: ["class"],
content: [ content: [

View File

@@ -22,7 +22,6 @@
"noUnusedParameters": true, "noUnusedParameters": true,
"noFallthroughCasesInSwitch": true, "noFallthroughCasesInSwitch": true,
/* Path mapping */ /* Path mapping */
"baseUrl": ".",
"paths": { "paths": {
"@/*": [ "@/*": [
"./src/*" "./src/*"
@@ -40,7 +39,7 @@
"./src/stores/*" "./src/stores/*"
], ],
"@pages/*": [ "@pages/*": [
"src/app/*" "./src/app/*"
], ],
"@components/*": [ "@components/*": [
"./src/components/*" "./src/components/*"

View File

@@ -7,19 +7,7 @@ export default defineConfig({
plugins: [react(), tailwindcss()], plugins: [react(), tailwindcss()],
resolve: { resolve: {
alias: { alias: {
'@': path.resolve(__dirname, './src'), '@': path.resolve(__dirname, './src')
'@config': path.resolve(__dirname, './src/config'),
'@router': path.resolve(__dirname, './src/router'),
'@api': path.resolve(__dirname, './src/apis'),
'@stores': path.resolve(__dirname, './src/stores'),
'@pages': path.resolve(__dirname, './src/pages'),
'@components': path.resolve(__dirname, './src/components'),
'@utils': path.resolve(__dirname, './src/utils'),
'@types': path.resolve(__dirname, './src/types'),
'@assets': path.resolve(__dirname, './src/assets'),
'@lib': path.resolve(__dirname, './src/lib'),
'@hooks': path.resolve(__dirname, './src/hooks'),
'@styles': path.resolve(__dirname, './src/styles')
} }
}, },
server: { server: {