更新 Typescript/集成eslint和prettier1.patch

This commit is contained in:
2025-04-04 17:24:17 +00:00
parent d768581f0a
commit cd2a7e89c2

View File

@@ -0,0 +1,112 @@
diff --git a/.husky/pre-commit b/.husky/pre-commit
new file mode 100644
index 0000000..c2bc65e
--- /dev/null
+++ b/.husky/pre-commit
@@ -0,0 +1,2 @@
+pnpm run compile
+npx --no-install lint-staged
\ No newline at end of file
diff --git a/.prettierrc.cjs b/.prettierrc.cjs
new file mode 100644
index 0000000..cedeaa0
--- /dev/null
+++ b/.prettierrc.cjs
@@ -0,0 +1,18 @@
+module.exports = {
+ // 字符串使用单引号
+ singleQuote: true,
+ // 大括号内的首尾需要空格
+ bracketSpacing: true,
+ // 末尾不需要逗号
+ trailingComma: 'none',
+ // 箭头函数参数括号
+ arrowParens: 'avoid',
+ // 在jsx中把'>' 是否单独放一行
+ jsxBracketSameLine: true,
+ // 使用默认的折行标准
+ proseWrap: 'preserve',
+ // 根据显示样式决定 html 要不要折行
+ htmlWhitespaceSensitivity: 'css',
+ // 换行符使用 crlf/lf/auto
+ endOfLine: 'auto'
+}
\ No newline at end of file
diff --git a/eslint.config.mjs b/eslint.config.mjs
new file mode 100644
index 0000000..a7be3cf
--- /dev/null
+++ b/eslint.config.mjs
@@ -0,0 +1,18 @@
+// @ts-check
+
+import eslint from '@eslint/js';
+import tseslint from 'typescript-eslint';
+import prettier from 'eslint-plugin-prettier';
+
+export default tseslint.config(
+ eslint.configs.recommended,
+ tseslint.configs.recommended,
+ {
+ plugins: {
+ prettier,
+ },
+ rules: {
+ 'prettier/prettier': 'error',
+ },
+ }
+);
\ No newline at end of file
diff --git a/package.json b/package.json
index 9d799c6..30b1f40 100644
--- a/package.json
+++ b/package.json
@@ -10,7 +10,9 @@
"compile": "tsc --noEmit",
"tauri": "tauri",
"tauri:dev": "tauri dev",
- "tauri:build": "tauri build"
+ "tauri:build": "tauri build",
+ "format": "prettier --write \"{src,tests}/**/*.{js,jsx,ts,tsx}\"",
+ "prepare": "husky install"
},
"dependencies": {
"@emotion/react": "^11.14.0",
@@ -42,6 +44,7 @@
"zustand": "^5.0.3"
},
"devDependencies": {
+ "@eslint/js": "^9.23.0",
"@tauri-apps/cli": "^2",
"@types/node": "^22.13.1",
"@types/react": "^18.3.1",
@@ -53,8 +56,14 @@
"@unocss/preset-web-fonts": "^65.4.3",
"@unocss/reset": "^65.4.3",
"@vitejs/plugin-react": "^4.3.4",
+ "eslint": "^9.23.0",
+ "eslint-plugin-prettier": "^5.2.6",
+ "husky": "^9.1.7",
+ "lint-staged": "^15.5.0",
+ "prettier": "^3.5.3",
"tsx": "^4.19.3",
- "typescript": "~5.6.2",
+ "typescript": "~5.6.3",
+ "typescript-eslint": "^8.29.0",
"unocss": "^65.4.3",
"vite": "^6.1.0",
"vite-plugin-compression": "^0.5.1"
@@ -63,5 +72,11 @@
"onlyBuiltDependencies": [
"esbuild"
]
+ },
+ "lint-staged": {
+ "*.{ts,tsx}": [
+ "eslint --fix",
+ "prettier --write"
+ ]
}
-}
+}
\ No newline at end of file