Skip to content

Commit a8100aa

Browse files
committed
feat: 优化与修复代码
1 parent aa2befd commit a8100aa

File tree

12 files changed

+170
-128
lines changed

12 files changed

+170
-128
lines changed

.github/workflows/deploy.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: Deploy to Aliyun OSS
22

33
on:
44
push:
5-
branches: ["main"]
5+
branches: ['main']
66
workflow_dispatch:
77

88
permissions:
@@ -13,7 +13,6 @@ jobs:
1313
name: Deploy to Aliyun OSS
1414
runs-on: ubuntu-latest
1515
steps:
16-
1716
- name: Checkout Code
1817
uses: actions/checkout@v4
1918

bun.lock

Lines changed: 18 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

eslint.config.ts

Lines changed: 73 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,13 @@ import { importX } from 'eslint-plugin-import-x'
1414
import globals from 'globals'
1515
import tseslint, { type ConfigArray } from 'typescript-eslint'
1616

17+
1718
const OPTIONS = {
1819
ENABLE_SCRIPT: true, // Set to enable typescript javascript file features
1920
ENABLE_TYPE_CHECKED: true, // Set to enable type features
20-
ENABLE_PROJECT_BASE_TYPE_CHECKED: false, // Set to enable project-based type features
21-
ENABLE_FRONTEND: false, // Set to enable Next.js, JSX, React, Reacts Hooks, and other frontend features
21+
ENABLE_PROJECT_BASE_TYPE_CHECKED: true, // Set to enable project-based type features
22+
ENABLE_FRONTEND: true, // Set to enable JSX, React, Reacts Hooks, and other frontend features
23+
ENABLE_NEXT: false, // Set to enable Next.js and other frontend features
2224
ENABLE_MARKDOWN: true, // Set to enable markdown file features
2325
ENABLE_JSON: true, // Set to enable json file features
2426
ENABLE_STYLESHEET: true, // Set to enable CSS, SCSS, SASS and other stylesheet features
@@ -52,53 +54,53 @@ if (OPTIONS.ENABLE_SCRIPT && OPTIONS.ENABLE_TYPE_CHECKED) {
5254
tsConfig.push(
5355
...(OPTIONS.ENABLE_PROJECT_BASE_TYPE_CHECKED
5456
? [
55-
{
56-
ignores: ['eslint.config.ts'],
57-
},
58-
{
59-
files: allScriptFiles,
60-
languageOptions: {
61-
parserOptions: {
62-
projectService: true,
63-
tsconfigRootDir: __dirname,
64-
},
57+
{
58+
ignores: ['eslint.config.ts'],
59+
},
60+
{
61+
files: allScriptFiles,
62+
languageOptions: {
63+
parserOptions: {
64+
projectService: true,
65+
tsconfigRootDir: __dirname,
6566
},
6667
},
67-
{
68-
...tseslint.configs.strictTypeChecked[0],
69-
files: allScriptFiles,
70-
},
71-
{
72-
...tseslint.configs.strictTypeChecked[1],
73-
files: allTsFiles,
74-
},
75-
{
76-
...tseslint.configs.strictTypeChecked[2],
77-
files: allScriptFiles,
78-
},
79-
{
80-
...tseslint.configs.stylisticTypeChecked[2],
81-
files: allScriptFiles,
82-
},
83-
]
68+
},
69+
{
70+
...tseslint.configs.strictTypeChecked[0],
71+
files: allScriptFiles,
72+
},
73+
{
74+
...tseslint.configs.strictTypeChecked[1],
75+
files: allTsFiles,
76+
},
77+
{
78+
...tseslint.configs.strictTypeChecked[2],
79+
files: allScriptFiles,
80+
},
81+
{
82+
...tseslint.configs.stylisticTypeChecked[2],
83+
files: allScriptFiles,
84+
},
85+
]
8486
: [
85-
{
86-
...tseslint.configs.strict[0],
87-
files: allScriptFiles,
88-
},
89-
{
90-
...tseslint.configs.strict[1],
91-
files: allTsFiles,
92-
},
93-
{
94-
...tseslint.configs.strict[2],
95-
files: allScriptFiles,
96-
},
97-
{
98-
...tseslint.configs.stylistic[2],
99-
files: allScriptFiles,
100-
},
101-
]),
87+
{
88+
...tseslint.configs.strict[0],
89+
files: allScriptFiles,
90+
},
91+
{
92+
...tseslint.configs.strict[1],
93+
files: allTsFiles,
94+
},
95+
{
96+
...tseslint.configs.strict[2],
97+
files: allScriptFiles,
98+
},
99+
{
100+
...tseslint.configs.stylistic[2],
101+
files: allScriptFiles,
102+
},
103+
]),
102104
)
103105
}
104106

@@ -152,11 +154,20 @@ if (OPTIONS.ENABLE_SCRIPT) {
152154

153155
const frontendConfig: ConfigArray = []
154156
if (OPTIONS.ENABLE_FRONTEND) {
155-
frontendConfig.push(
156-
...compat.config({
157-
extends: ['next/core-web-vitals', 'next/typescript'],
158-
}),
159-
)
157+
if (OPTIONS.ENABLE_NEXT) {
158+
frontendConfig.push(
159+
...compat.config({
160+
extends: ['next/core-web-vitals', 'next/typescript'],
161+
}),
162+
)
163+
} else {
164+
frontendConfig.push(
165+
...compat.extends(
166+
'plugin:react/recommended',
167+
'plugin:react-hooks/recommended'
168+
),
169+
)
170+
}
160171
for (const nextConfigElement of frontendConfig) {
161172
nextConfigElement.files ??= allScriptFiles
162173
}
@@ -220,6 +231,8 @@ const customConfig: ConfigArray = defineConfig([
220231
'@typescript-eslint/no-unnecessary-type-parameters': 'off',
221232
'@typescript-eslint/no-unused-vars': 'off',
222233
'@typescript-eslint/no-empty-function': 'off',
234+
'@typescript-eslint/require-await': 'off',
235+
'import-x/no-named-as-default': 'error',
223236
'import-x/no-named-as-default-member': 'off',
224237
'import-x/order': [
225238
'error',
@@ -256,12 +269,15 @@ const customConfig: ConfigArray = defineConfig([
256269
},
257270
{
258271
files: allScriptFiles,
259-
rules: OPTIONS.ENABLE_FRONTEND
260-
? {
261-
'react-hooks/exhaustive-deps': 'error',
262-
'@next/next/no-img-element': 'error',
263-
}
264-
: {},
272+
rules: OPTIONS.ENABLE_FRONTEND ? {
273+
'react-hooks/exhaustive-deps': 'error',
274+
} : {},
275+
},
276+
{
277+
files: allScriptFiles,
278+
rules: (OPTIONS.ENABLE_FRONTEND && OPTIONS.ENABLE_NEXT) ? {
279+
'@next/next/no-img-element': 'error',
280+
} : {},
265281
},
266282
{
267283
files: ['**/*.css'],

0 commit comments

Comments
 (0)