feat: 升级 eslint 配置及版本

This commit is contained in:
yqllin 2024-01-09 16:50:23 +08:00
parent 14d7f6eaad
commit 2bb6903bb3
4 changed files with 442 additions and 270 deletions

71
.vscode/settings.json vendored
View File

@ -1,48 +1,35 @@
{ {
// Enable the ESlint flat config support // Enable the ESlint flat config support
"eslint.experimental.useFlatConfig": true, "eslint.experimental.useFlatConfig": true,
// Disable the default formatter, use eslint instead // Disable the default formatter, use eslint instead
"prettier.enable": false, "prettier.enable": false,
"editor.formatOnSave": false, "editor.formatOnSave": false,
// Auto fix // Auto fix
"editor.codeActionsOnSave": { "editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit", "source.fixAll.eslint": "explicit",
"source.organizeImports": "never" "source.organizeImports": "never"
}, },
// Silent the stylistic rules in you IDE, but still auto fix them // Enable eslint for all supported languages
"eslint.rules.customizations": [ "eslint.validate": [
{ "rule": "style/*", "severity": "off" }, "javascript",
{ "rule": "*-indent", "severity": "off" }, "javascriptreact",
{ "rule": "*-spacing", "severity": "off" }, "typescript",
{ "rule": "*-spaces", "severity": "off" }, "typescriptreact",
{ "rule": "*-order", "severity": "off" }, "vue",
{ "rule": "*-dangle", "severity": "off" }, "html",
{ "rule": "*-newline", "severity": "off" }, "markdown",
{ "rule": "*quotes", "severity": "off" }, "json",
{ "rule": "*semi", "severity": "off" } "jsonc",
], "yaml"
],
// Enable eslint for all supported languages "pair-diff.patterns": [
"eslint.validate": [ {
"javascript", "source": "./fixtures/output/**/*.*",
"javascriptreact", "target": "./fixtures/input/<base>"
"typescript", }
"typescriptreact", ]
"vue",
"html",
"markdown",
"json",
"jsonc",
"yaml"
],
"pair-diff.patterns": [
{
"source": "./fixtures/output/**/*.*",
"target": "./fixtures/input/<base>"
}
]
} }

View File

@ -2,19 +2,36 @@
import antfu from '@antfu/eslint-config'; import antfu from '@antfu/eslint-config';
export default await antfu({ export default await antfu({
files: ['**/*.js', '**/*.jsx', '**/*.vue', '**/*.ts'],
// TODO: 使用 ignore 代替 cli 命令中的配置
stylistic: { stylistic: {
indent: 4, // 4, or 'tab' indent: 4,
quotes: 'single', // or 'double' quotes: 'single',
semi: 'always', semi: 'always',
}, },
typescript: true, typescript: true,
vue: true, vue: true,
rules: { rules: {
'curly': ['error', 'multi-line'],
'vue/block-order': [ 'vue/block-order': [
'error', 'error',
{ {
order: ['template', 'script', 'style'], order: ['template', 'script', 'style'],
}, },
], ],
'style/member-delimiter-style': [
'error',
{
multiline: {
delimiter: 'semi',
requireLast: true,
},
singleline: {
delimiter: 'semi',
requireLast: false,
},
multilineDetection: 'brackets',
},
],
}, },
}); });

View File

@ -1,13 +1,21 @@
{ {
"name": "fes.js", "name": "fes.js",
"type": "module",
"version": "3.1.1", "version": "3.1.1",
"private": true,
"description": "一个好用的前端管理台快速开发框架", "description": "一个好用的前端管理台快速开发框架",
"preferGlobal": true, "preferGlobal": true,
"private": true,
"workspaces": [ "workspaces": [
"packages/*" "packages/*"
], ],
"type": "module", "license": "MIT",
"keywords": [
"管理端",
"fes",
"fast",
"easy",
"strong"
],
"scripts": { "scripts": {
"bootstrap": "pnpm i", "bootstrap": "pnpm i",
"dev": "node scripts/build.mjs --watch", "dev": "node scripts/build.mjs --watch",
@ -18,17 +26,10 @@
"docs:build": "vitepress build docs", "docs:build": "vitepress build docs",
"docs:build-pages": "BASE=fes.js vitepress build docs", "docs:build-pages": "BASE=fes.js vitepress build docs",
"test": "fes test", "test": "fes test",
"lint": "eslint -c ./.eslintrc.js --ignore-pattern='templates' --ext .js,.jsx,.vue,.ts", "lint": "eslint --ignore-pattern='templates'",
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s" "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s",
"hooks:sync": "simple-git-hooks"
}, },
"license": "MIT",
"keywords": [
"管理端",
"fes",
"fast",
"easy",
"strong"
],
"dependencies": { "dependencies": {
"chalk": "^5.0.1", "chalk": "^5.0.1",
"conventional-changelog-cli": "^4.1.0", "conventional-changelog-cli": "^4.1.0",
@ -38,14 +39,14 @@
"semver": "^7.3.6" "semver": "^7.3.6"
}, },
"devDependencies": { "devDependencies": {
"@antfu/eslint-config": "^2.1.1", "@antfu/eslint-config": "^2.6.2",
"@commitlint/cli": "^11.0.0", "@commitlint/cli": "^11.0.0",
"@commitlint/config-conventional": "^11.0.0", "@commitlint/config-conventional": "^11.0.0",
"chokidar": "^3.5.3", "chokidar": "^3.5.3",
"commitizen": "^4.3.0", "commitizen": "^4.3.0",
"cz-conventional-changelog": "^3.3.0", "cz-conventional-changelog": "^3.3.0",
"deepmerge": "^4.2.2", "deepmerge": "^4.2.2",
"eslint": "^8.54.0", "eslint": "^8.56.0",
"fs-extra": "^11.1.1", "fs-extra": "^11.1.1",
"lint-staged": "^13.2.0", "lint-staged": "^13.2.0",
"simple-git-hooks": "^2.9.0", "simple-git-hooks": "^2.9.0",
@ -54,15 +55,15 @@
"vue": "^3.3.4", "vue": "^3.3.4",
"yargs-parser": "^21.1.1" "yargs-parser": "^21.1.1"
}, },
"simple-git-hooks": {
"pre-commit": "lint-staged",
"commit-msg": "commitlint"
},
"lint-staged": { "lint-staged": {
"*.{js,jsx,vue,ts}": [ "*.{js,jsx,vue,ts}": [
"npm run lint" "npm run lint"
] ]
}, },
"simple-git-hooks": {
"pre-commit": "lint-staged",
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
},
"config": { "config": {
"commitizen": { "commitizen": {
"path": "./node_modules/cz-conventional-changelog" "path": "./node_modules/cz-conventional-changelog"

583
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff