Skip to content

Commit 1b76042

Browse files
committed
build: 更新代码格式化和 ESLint 配置
- 移除 .prettierrc,使用 sxzz 的 Prettier 配置 - 更新 .vscode/settings.json,简化配置并启用文件嵌套 - 更新 eslint.config.js,增加自定义规则并使用 lessOpinionated 模式
1 parent 67b6080 commit 1b76042

14 files changed

+295
-144
lines changed

.github/renovate.json5

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
2-
"extends": ["github>sxzz/renovate-config"],
3-
"automerge": true
2+
extends: ['github>sxzz/renovate-config'],
3+
automerge: true,
44
}

.prettierrc

Lines changed: 0 additions & 17 deletions
This file was deleted.

.prettierrc.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import baseConfig from '@sxzz/prettier-config'
2+
3+
/**
4+
* @type {import('prettier').Config}
5+
*/
6+
export default {
7+
...baseConfig,
8+
singleAttributePerLine: true,
9+
}

.vscode/settings.json

Lines changed: 38 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -1,114 +1,38 @@
11
{
2-
/* ========================== Editor ========================== */
3-
"editor.formatOnSave": false,
4-
"editor.minimap.renderCharacters": false,
5-
"editor.tabSize": 2,
6-
"editor.fontLigatures": true,
7-
"editor.stickyTabStops": true,
8-
"editor.defaultFormatter": "esbenp.prettier-vscode",
9-
"editor.codeActionsOnSave": {
10-
"source.fixAll": "never",
11-
"source.fixAll.eslint": "explicit"
2+
"explorer.fileNesting.enabled": true,
3+
"explorer.fileNesting.patterns": {
4+
"tsconfig.json": "tsconfig.*.json, env.d.ts",
5+
"vite.config.*": "jsconfig*, vitest.config.*, cypress.config.*, playwright.config.*",
6+
"package.json": "package-lock.json, pnpm*, .yarnrc*, yarn*, .eslint*, eslint*, .oxlint*, oxlint*, .prettier*, prettier*, .editorconfig"
127
},
8+
139
"files.autoSave": "onWindowChange",
14-
"files.trimTrailingWhitespace": true,
1510
"files.eol": "\n",
16-
"files.insertFinalNewline": true,
17-
"git.suggestSmartCommit": false,
18-
"emmet.triggerExpansionOnTab": false,
19-
"emmet.showSuggestionsAsSnippets": true,
20-
"emmet.includeLanguages": {
21-
"vue-html": "html",
22-
"postcss": "css"
23-
},
24-
"search.exclude": {
25-
"**/*.snap": true,
26-
"**/*.svg": true,
27-
"**/.git": true,
28-
"**/.github": false,
29-
"**/.nuxt": true,
30-
"**/.output": true,
31-
"**/.pnpm": true,
32-
"**/.vscode": true,
33-
"**/.yarn": true,
34-
"**/assets": true,
35-
"**/bower_components": true,
36-
"**/dist/**": true,
37-
"**/logs": true,
38-
"**/node_modules": true,
39-
"**/out/**": true,
40-
"**/package-lock.json": true,
41-
"**/pnpm-lock.yaml": true,
42-
"**/public": true,
43-
"**/temp": true,
44-
"**/yarn.lock": true,
45-
"**/CHANGELOG*": true,
46-
"**/LICENSE*": true
11+
12+
"editor.defaultFormatter": "esbenp.prettier-vscode",
13+
"editor.formatOnSave": false,
14+
15+
// Auto fix
16+
"editor.codeActionsOnSave": {
17+
"source.fixAll.eslint": "explicit",
18+
"source.organizeImports": "never"
4719
},
48-
/* ========================== Prettier ========================== */
49-
"prettier.enable": true,
50-
"prettier.htmlWhitespaceSensitivity": "css",
51-
"prettier.jsxSingleQuote": false,
52-
"prettier.proseWrap": "preserve",
53-
"prettier.quoteProps": "as-needed",
54-
"prettier.tabWidth": 2,
55-
"prettier.useTabs": false,
56-
"prettier.vueIndentScriptAndStyle": false,
57-
"prettier.semi": false,
58-
"prettier.arrowParens": "always",
59-
"prettier.bracketSameLine": false,
60-
"prettier.bracketSpacing": true,
61-
"prettier.printWidth": 100,
62-
"prettier.singleQuote": true,
63-
"prettier.trailingComma": "none",
64-
"prettier.singleAttributePerLine": true,
65-
/* ========================== ESLint ========================== */
66-
"eslint.enable": true,
67-
"eslint.format.enable": true,
68-
"eslint.useFlatConfig": true,
20+
6921
// Silent the stylistic rules in you IDE, but still auto fix them
7022
"eslint.rules.customizations": [
71-
{
72-
"rule": "style/*",
73-
"severity": "off"
74-
},
75-
{
76-
"rule": "format/*",
77-
"severity": "off"
78-
},
79-
{
80-
"rule": "*-indent",
81-
"severity": "off"
82-
},
83-
{
84-
"rule": "*-spacing",
85-
"severity": "off"
86-
},
87-
{
88-
"rule": "*-spaces",
89-
"severity": "off"
90-
},
91-
{
92-
"rule": "*-order",
93-
"severity": "off"
94-
},
95-
{
96-
"rule": "*-dangle",
97-
"severity": "off"
98-
},
99-
{
100-
"rule": "*-newline",
101-
"severity": "off"
102-
},
103-
{
104-
"rule": "*quotes",
105-
"severity": "off"
106-
},
107-
{
108-
"rule": "*semi",
109-
"severity": "off"
110-
}
23+
{ "rule": "style/*", "severity": "off", "fixable": true },
24+
{ "rule": "format/*", "severity": "off", "fixable": true },
25+
{ "rule": "*-indent", "severity": "off", "fixable": true },
26+
{ "rule": "*-spacing", "severity": "off", "fixable": true },
27+
{ "rule": "*-spaces", "severity": "off", "fixable": true },
28+
{ "rule": "*-order", "severity": "off", "fixable": true },
29+
{ "rule": "*-dangle", "severity": "off", "fixable": true },
30+
{ "rule": "*-newline", "severity": "off", "fixable": true },
31+
{ "rule": "*quotes", "severity": "off", "fixable": true },
32+
{ "rule": "*semi", "severity": "off", "fixable": true }
11133
],
34+
35+
// Enable eslint for all supported languages
11236
"eslint.validate": [
11337
"javascript",
11438
"javascriptreact",
@@ -120,6 +44,16 @@
12044
"json",
12145
"jsonc",
12246
"yaml",
123-
"toml"
47+
"toml",
48+
"xml",
49+
"gql",
50+
"graphql",
51+
"astro",
52+
"svelte",
53+
"css",
54+
"less",
55+
"scss",
56+
"pcss",
57+
"postcss"
12458
]
12559
}

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Lightweight Vue permission management plugin for component-level access control.
44

5-
[中文文档](https://github.com/vue-spark/permission/blob/main/README.zh_CN.md)
5+
[中文文档](https://github.com/vue-spark/permission/blob/main/README.zh-CN.md)
66

77
## Installation
88

@@ -53,7 +53,10 @@ interface Permission {
5353
* @param op Logical operator, defaults to `or`
5454
* @returns Result of the permission check
5555
*/
56-
check: (codes: PermissionCode | PermissionCode[], op?: PermissionOperator) => boolean
56+
check: (
57+
codes: PermissionCode | PermissionCode[],
58+
op?: PermissionOperator,
59+
) => boolean
5760
}
5861
```
5962

README.zh_CN.md renamed to README.zh-CN.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,10 @@ interface Permission {
5353
* @param op 操作符,默认为 `or`
5454
* @returns 检查结果
5555
*/
56-
check: (codes: PermissionCode | PermissionCode[], op?: PermissionOperator) => boolean
56+
check: (
57+
codes: PermissionCode | PermissionCode[],
58+
op?: PermissionOperator,
59+
) => boolean
5760
}
5861
```
5962

eslint.config.js

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,22 @@
11
import { antfu } from '@antfu/eslint-config'
22

3-
export default antfu({
4-
type: 'lib',
5-
formatters: true,
6-
stylistic: {
7-
overrides: {
3+
export default antfu(
4+
{
5+
ignores: ['.github'],
6+
type: 'lib',
7+
formatters: true,
8+
lessOpinionated: true,
9+
},
10+
{
11+
rules: {
12+
// 顶级函数必须使用 function 定义
13+
'antfu/top-level-function': ['error'],
14+
15+
// 箭头函数参数括号与 prettier 保持一致
16+
'style/arrow-parens': ['error', 'always'],
17+
// 花括号必须在换行
18+
'style/curly-newline': ['error', 'always'],
19+
820
'style/operator-linebreak': [
921
'error',
1022
'after',
@@ -19,4 +31,4 @@ export default antfu({
1931
],
2032
},
2133
},
22-
})
34+
)

lint-staged.config.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,8 @@
22
* @type {import('lint-staged').Configuration}
33
*/
44
export default {
5-
'*.{js,jsx,cjs,mjs,ts,tsx,html,vue,css,scss,json,json5,jsonc,md}': ['prettier --write', 'eslint --fix'],
5+
'*.{js,jsx,cjs,mjs,ts,tsx,html,vue,css,scss,json,json5,jsonc,md}': [
6+
'prettier --write',
7+
'eslint --fix',
8+
],
69
}

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"bugs": {
1515
"url": "https://github.com/vue-spark/permission/issues"
1616
},
17-
"keywords": [],
17+
"keywords": ["permission", "app-helpers"],
1818
"exports": {
1919
".": "./dist/index.js",
2020
"./package.json": "./package.json"
@@ -45,6 +45,7 @@
4545
},
4646
"devDependencies": {
4747
"@antfu/eslint-config": "^4.14.1",
48+
"@sxzz/prettier-config": "^2.2.3",
4849
"@tsconfig/node22": "^22.0.2",
4950
"@types/node": "^22.15.17",
5051
"@vue/tsconfig": "^0.7.0",

0 commit comments

Comments
 (0)