mirror of
https://github.com/kailong321200875/vue-element-plus-admin.git
synced 2024-11-21 00:51:22 +08:00
chore: 更新eslint
This commit is contained in:
parent
367b3508e8
commit
15db5e8db3
@ -1,8 +0,0 @@
|
||||
/build/
|
||||
/config/
|
||||
/dist/
|
||||
/*.js
|
||||
/test/unit/coverage/
|
||||
/node_modules/*
|
||||
/dist*
|
||||
/src/main.ts
|
@ -1,71 +0,0 @@
|
||||
// @ts-check
|
||||
const { defineConfig } = require('eslint-define-config')
|
||||
module.exports = defineConfig({
|
||||
root: true,
|
||||
env: {
|
||||
browser: true,
|
||||
node: true,
|
||||
es6: true
|
||||
},
|
||||
parser: 'vue-eslint-parser',
|
||||
parserOptions: {
|
||||
parser: '@typescript-eslint/parser',
|
||||
ecmaVersion: 2020,
|
||||
sourceType: 'module',
|
||||
jsxPragma: 'React',
|
||||
ecmaFeatures: {
|
||||
jsx: true
|
||||
}
|
||||
},
|
||||
extends: [
|
||||
'plugin:vue/vue3-recommended',
|
||||
'plugin:@typescript-eslint/recommended',
|
||||
'prettier',
|
||||
'plugin:prettier/recommended'
|
||||
],
|
||||
rules: {
|
||||
'vue/no-setup-props-destructure': 'off',
|
||||
'vue/script-setup-uses-vars': 'error',
|
||||
'vue/no-reserved-component-names': 'off',
|
||||
'@typescript-eslint/ban-ts-ignore': 'off',
|
||||
'@typescript-eslint/explicit-function-return-type': 'off',
|
||||
'@typescript-eslint/no-explicit-any': 'off',
|
||||
'@typescript-eslint/no-var-requires': 'off',
|
||||
'@typescript-eslint/no-empty-function': 'off',
|
||||
'vue/custom-event-name-casing': 'off',
|
||||
'no-use-before-define': 'off',
|
||||
'@typescript-eslint/no-use-before-define': 'off',
|
||||
'@typescript-eslint/ban-ts-comment': 'off',
|
||||
'@typescript-eslint/ban-types': 'off',
|
||||
'@typescript-eslint/no-non-null-assertion': 'off',
|
||||
'@typescript-eslint/explicit-module-boundary-types': 'off',
|
||||
'@typescript-eslint/no-unused-vars': 'off',
|
||||
'no-unused-vars': 'off',
|
||||
'space-before-function-paren': 'off',
|
||||
|
||||
'vue/attributes-order': 'off',
|
||||
'vue/one-component-per-file': 'off',
|
||||
'vue/html-closing-bracket-newline': 'off',
|
||||
'vue/max-attributes-per-line': 'off',
|
||||
'vue/multiline-html-element-content-newline': 'off',
|
||||
'vue/singleline-html-element-content-newline': 'off',
|
||||
'vue/attribute-hyphenation': 'off',
|
||||
'vue/require-default-prop': 'off',
|
||||
'vue/require-explicit-emits': 'off',
|
||||
'vue/html-self-closing': [
|
||||
'error',
|
||||
{
|
||||
html: {
|
||||
void: 'always',
|
||||
normal: 'never',
|
||||
component: 'always'
|
||||
},
|
||||
svg: 'always',
|
||||
math: 'always'
|
||||
}
|
||||
],
|
||||
'vue/multi-word-component-names': 'off',
|
||||
'vue/no-v-html': 'off',
|
||||
'vue/require-toggle-inside-transition': 'off'
|
||||
}
|
||||
})
|
@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
. "$(dirname "$0")/_/husky.sh"
|
||||
. "$(dirname "$0")/husky.sh"
|
||||
|
||||
pnpm commitlint --edit "$1"
|
||||
|
@ -1,5 +1,5 @@
|
||||
#!/bin/sh
|
||||
. "$(dirname "$0")/_/husky.sh"
|
||||
. "$(dirname "$0")/husky.sh"
|
||||
|
||||
[ -n "$CI" ] && exit 0
|
||||
|
||||
|
81
eslint.config.mjs
Normal file
81
eslint.config.mjs
Normal file
@ -0,0 +1,81 @@
|
||||
// 引入vue模版的eslint
|
||||
import pluginVue from 'eslint-plugin-vue'
|
||||
import eslint from '@eslint/js'
|
||||
// ts-eslint解析器,使 eslint 可以解析 ts 语法
|
||||
import tseslint from 'typescript-eslint'
|
||||
// vue文件解析器
|
||||
import vueParser from 'vue-eslint-parser'
|
||||
import prettier from 'eslint-plugin-prettier'
|
||||
|
||||
export default tseslint.config({
|
||||
// ignores: ['node_modules', 'prettier.config.cjs', 'dist*'],
|
||||
files: ['src/**/*.ts', 'src/**/*.tsx', 'src/**/*.vue'],
|
||||
// tseslint.config添加了extends扁平函数,直接用。否则是eslint9.0版本是没有extends的
|
||||
extends: [
|
||||
eslint.configs.recommended,
|
||||
...tseslint.configs.recommended,
|
||||
...pluginVue.configs['flat/essential']
|
||||
],
|
||||
plugins: {
|
||||
prettier
|
||||
},
|
||||
languageOptions: {
|
||||
parser: vueParser, // 使用vue解析器,这个可以识别vue文件
|
||||
parserOptions: {
|
||||
parser: tseslint.parser, // 在vue文件上使用ts解析器
|
||||
sourceType: 'module',
|
||||
ecmaVersion: 2020,
|
||||
ecmaFeatures: {
|
||||
jsx: true
|
||||
}
|
||||
}
|
||||
},
|
||||
rules: {
|
||||
'prettier/prettier': 'error',
|
||||
'no-useless-escape': 0,
|
||||
'no-undef': 0,
|
||||
'vue/no-setup-props-destructure': 0,
|
||||
'vue/script-setup-uses-vars': 1,
|
||||
'vue/no-reserved-component-names': 0,
|
||||
'@typescript-eslint/ban-ts-ignore': 0,
|
||||
'@typescript-eslint/explicit-function-return-type': 0,
|
||||
'@typescript-eslint/no-explicit-any': 0,
|
||||
'@typescript-eslint/no-var-requires': 0,
|
||||
'@typescript-eslint/no-empty-function': 0,
|
||||
'vue/custom-event-name-casing': 0,
|
||||
'no-use-before-define': 0,
|
||||
'@typescript-eslint/no-use-before-define': 0,
|
||||
'@typescript-eslint/ban-ts-comment': 0,
|
||||
'@typescript-eslint/ban-types': 0,
|
||||
'@typescript-eslint/no-non-null-assertion': 0,
|
||||
'@typescript-eslint/explicit-module-boundary-types': 0,
|
||||
'@typescript-eslint/no-unused-vars': 0,
|
||||
'no-unused-vars': 0,
|
||||
'space-before-function-paren': 0,
|
||||
|
||||
'vue/attributes-order': 0,
|
||||
'vue/one-component-per-file': 0,
|
||||
'vue/html-closing-bracket-newline': 0,
|
||||
'vue/max-attributes-per-line': 0,
|
||||
'vue/multiline-html-element-content-newline': 0,
|
||||
'vue/singleline-html-element-content-newline': 0,
|
||||
'vue/attribute-hyphenation': 0,
|
||||
'vue/require-default-prop': 0,
|
||||
'vue/require-explicit-emits': 0,
|
||||
'vue/html-self-closing': [
|
||||
1,
|
||||
{
|
||||
html: {
|
||||
void: 'always',
|
||||
normal: 'never',
|
||||
component: 'always'
|
||||
},
|
||||
svg: 'always',
|
||||
math: 'always'
|
||||
}
|
||||
],
|
||||
'vue/multi-word-component-names': 0,
|
||||
'vue/no-v-html': 0,
|
||||
'vue/require-toggle-inside-transition': 0
|
||||
}
|
||||
})
|
67
package.json
67
package.json
@ -19,7 +19,7 @@
|
||||
"npm:check": "pnpx npm-check-updates -u",
|
||||
"clean": "pnpx rimraf node_modules",
|
||||
"clean:cache": "pnpx rimraf node_modules/.cache",
|
||||
"lint:eslint": "eslint --fix --ext .js,.ts,.vue ./src",
|
||||
"lint:eslint": "eslint . --fix \"src/**/*.{js,ts,tsx,vue,html}\"",
|
||||
"lint:format": "prettier --write --loglevel warn \"src/**/*.{js,ts,json,tsx,css,less,vue,html,md}\"",
|
||||
"lint:style": "stylelint --fix \"**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/",
|
||||
"lint:lint-staged": "lint-staged -c ./.husky/lintstagedrc.cjs",
|
||||
@ -30,7 +30,7 @@
|
||||
"dependencies": {
|
||||
"@iconify/iconify": "^3.1.1",
|
||||
"@iconify/vue": "^4.1.2",
|
||||
"@vueuse/core": "^10.10.0",
|
||||
"@vueuse/core": "^10.11.0",
|
||||
"@wangeditor/editor": "^5.1.23",
|
||||
"@wangeditor/editor-for-vue": "^5.1.10",
|
||||
"@zxcvbn-ts/core": "^3.0.4",
|
||||
@ -39,78 +39,79 @@
|
||||
"cropperjs": "^1.6.2",
|
||||
"dayjs": "^1.11.11",
|
||||
"driver.js": "^1.3.1",
|
||||
"echarts": "^5.5.0",
|
||||
"echarts": "^5.5.1",
|
||||
"echarts-wordcloud": "^2.1.0",
|
||||
"element-plus": "2.7.4",
|
||||
"element-plus": "2.7.7",
|
||||
"lodash-es": "^4.17.21",
|
||||
"mitt": "^3.0.1",
|
||||
"monaco-editor": "^0.49.0",
|
||||
"monaco-editor": "^0.50.0",
|
||||
"nprogress": "^0.2.0",
|
||||
"pinia": "^2.1.7",
|
||||
"pinia-plugin-persistedstate": "^3.2.1",
|
||||
"qrcode": "^1.5.3",
|
||||
"qs": "^6.12.1",
|
||||
"qs": "^6.12.3",
|
||||
"url": "^0.11.3",
|
||||
"vue": "3.4.27",
|
||||
"vue-draggable-plus": "^0.5.0",
|
||||
"vue": "3.4.32",
|
||||
"vue-draggable-plus": "^0.5.2",
|
||||
"vue-i18n": "9.13.1",
|
||||
"vue-json-pretty": "^2.4.0",
|
||||
"vue-router": "^4.3.2",
|
||||
"vue-types": "^5.1.2",
|
||||
"vue-router": "^4.4.0",
|
||||
"vue-types": "^5.1.3",
|
||||
"xgplayer": "^3.0.18"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@commitlint/cli": "^19.3.0",
|
||||
"@commitlint/config-conventional": "^19.2.2",
|
||||
"@iconify/json": "^2.2.215",
|
||||
"@iconify/json": "^2.2.229",
|
||||
"@intlify/unplugin-vue-i18n": "^4.0.0",
|
||||
"@types/fs-extra": "^11.0.4",
|
||||
"@types/inquirer": "^9.0.7",
|
||||
"@types/lodash-es": "^4.17.12",
|
||||
"@types/mockjs": "^1.0.10",
|
||||
"@types/node": "^20.13.0",
|
||||
"@types/node": "^20.14.11",
|
||||
"@types/nprogress": "^0.2.3",
|
||||
"@types/qrcode": "^1.5.5",
|
||||
"@types/qs": "^6.9.15",
|
||||
"@types/sortablejs": "^1.15.8",
|
||||
"@typescript-eslint/eslint-plugin": "^7.11.0",
|
||||
"@typescript-eslint/parser": "^7.11.0",
|
||||
"@unocss/transformer-variant-group": "^0.60.4",
|
||||
"@typescript-eslint/eslint-plugin": "^7.16.1",
|
||||
"@typescript-eslint/parser": "^7.16.1",
|
||||
"@unocss/transformer-variant-group": "^0.61.5",
|
||||
"@vitejs/plugin-legacy": "^5.4.1",
|
||||
"@vitejs/plugin-vue": "^5.0.5",
|
||||
"@vitejs/plugin-vue-jsx": "^4.0.0",
|
||||
"autoprefixer": "^10.4.19",
|
||||
"chalk": "^5.3.0",
|
||||
"consola": "^3.2.3",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint": "^9.7.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-define-config": "^2.1.0",
|
||||
"eslint-plugin-prettier": "^5.1.3",
|
||||
"eslint-plugin-vue": "^9.26.0",
|
||||
"eslint-plugin-prettier": "^5.2.1",
|
||||
"eslint-plugin-vue": "^9.27.0",
|
||||
"esno": "^4.7.0",
|
||||
"fs-extra": "^11.2.0",
|
||||
"husky": "^9.0.11",
|
||||
"inquirer": "^9.2.23",
|
||||
"husky": "^9.1.0",
|
||||
"inquirer": "^10.0.3",
|
||||
"less": "^4.2.0",
|
||||
"lint-staged": "^15.2.5",
|
||||
"lint-staged": "^15.2.7",
|
||||
"mockjs": "^1.1.0",
|
||||
"plop": "^4.0.1",
|
||||
"postcss": "^8.4.38",
|
||||
"postcss": "^8.4.39",
|
||||
"postcss-html": "^1.7.0",
|
||||
"postcss-less": "^6.0.0",
|
||||
"prettier": "^3.2.5",
|
||||
"rimraf": "^5.0.7",
|
||||
"rollup": "^4.18.0",
|
||||
"prettier": "^3.3.3",
|
||||
"rimraf": "^6.0.1",
|
||||
"rollup": "^4.18.1",
|
||||
"rollup-plugin-visualizer": "^5.12.0",
|
||||
"stylelint": "^16.6.1",
|
||||
"stylelint": "^16.7.0",
|
||||
"stylelint-config-html": "^1.1.0",
|
||||
"stylelint-config-recommended": "^14.0.0",
|
||||
"stylelint-config-standard": "^36.0.0",
|
||||
"stylelint-config-recommended": "^14.0.1",
|
||||
"stylelint-config-standard": "^36.0.1",
|
||||
"stylelint-order": "^6.0.4",
|
||||
"terser": "^5.31.0",
|
||||
"typescript": "5.4.5",
|
||||
"unocss": "^0.60.4",
|
||||
"vite": "5.2.12",
|
||||
"terser": "^5.31.3",
|
||||
"typescript": "5.5.3",
|
||||
"typescript-eslint": "^7.16.1",
|
||||
"unocss": "^0.61.5",
|
||||
"vite": "5.3.4",
|
||||
"vite-plugin-ejs": "^1.7.0",
|
||||
"vite-plugin-eslint": "^1.8.1",
|
||||
"vite-plugin-mock": "2.9.6",
|
||||
@ -119,7 +120,7 @@
|
||||
"vite-plugin-style-import": "2.0.0",
|
||||
"vite-plugin-svg-icons": "^2.0.1",
|
||||
"vite-plugin-url-copy": "^1.1.4",
|
||||
"vue-tsc": "^2.0.19"
|
||||
"vue-tsc": "^2.0.26"
|
||||
},
|
||||
"packageManager": "pnpm@8.1.0",
|
||||
"engines": {
|
||||
|
@ -133,7 +133,7 @@ export default defineComponent({
|
||||
<div class="flex-1 px-8px py-11px bg-[var(--el-bg-color)] color-[var(--el-text-color-primary)] text-size-14px">
|
||||
{item.slots?.default
|
||||
? item.slots?.default(props.data)
|
||||
: get(props.data, item.field) ?? defaultData}
|
||||
: (get(props.data, item.field) ?? defaultData)}
|
||||
</div>
|
||||
</div>
|
||||
) : (
|
||||
@ -147,7 +147,7 @@ export default defineComponent({
|
||||
<div class="flex-1 px-8px py-11px bg-[var(--el-bg-color)] color-[var(--el-text-color-primary)] text-size-14px">
|
||||
{item.slots?.default
|
||||
? item.slots?.default(props.data)
|
||||
: get(props.data, item.field) ?? defaultData}
|
||||
: (get(props.data, item.field) ?? defaultData)}
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
@ -50,7 +50,7 @@ const handleCheckedColumnsChange = (value: string[]) => {
|
||||
const confirm = () => {
|
||||
const newColumns = cloneDeep(unref(settingColumns))?.map((item) => {
|
||||
const fixed = unref(settingColumns)?.find((col) => col.field === item.field)?.fixed
|
||||
item.hidden = !!!unref(checkColumns)?.includes(item.field)
|
||||
item.hidden = !unref(checkColumns)?.includes(item.field)
|
||||
item.fixed = fixed ? fixed : undefined
|
||||
return item
|
||||
})
|
||||
|
@ -37,7 +37,7 @@ async function unLock() {
|
||||
if (!password.value) {
|
||||
return
|
||||
}
|
||||
let pwd = password.value
|
||||
const pwd = password.value
|
||||
try {
|
||||
loading.value = true
|
||||
const res = await lockStore.unLock(pwd)
|
||||
|
@ -27,18 +27,15 @@ const handleClickOutside = () => {
|
||||
}
|
||||
|
||||
const renderLayout = () => {
|
||||
const { renderClassic, renderTopLeft, renderTop, renderCutMenu } = useRenderLayout()
|
||||
switch (unref(layout)) {
|
||||
case 'classic':
|
||||
const { renderClassic } = useRenderLayout()
|
||||
return renderClassic()
|
||||
case 'topLeft':
|
||||
const { renderTopLeft } = useRenderLayout()
|
||||
return renderTopLeft()
|
||||
case 'top':
|
||||
const { renderTop } = useRenderLayout()
|
||||
return renderTop()
|
||||
case 'cutMenu':
|
||||
const { renderCutMenu } = useRenderLayout()
|
||||
return renderCutMenu()
|
||||
default:
|
||||
break
|
||||
|
@ -54,7 +54,6 @@ export const getCssVar = (prop: string, dom = document.documentElement) => {
|
||||
* @param {Array} ary 查找的数组
|
||||
* @param {Functon} fn 判断的方法
|
||||
*/
|
||||
// eslint-disable-next-line
|
||||
export const findIndex = <T = Recordable>(ary: Array<T>, fn: Fn): number => {
|
||||
if (ary.findIndex) {
|
||||
return ary.findIndex(fn)
|
||||
|
@ -15,7 +15,7 @@ const { t } = useI18n()
|
||||
|
||||
const loading = ref(true)
|
||||
|
||||
let tableDataList = ref<any[]>([])
|
||||
const tableDataList = ref<any[]>([])
|
||||
|
||||
const getTableList = async (params?: Params) => {
|
||||
const res = await getCardTableListApi(
|
||||
|
@ -68,7 +68,7 @@ const columns: TableColumn[] = [
|
||||
|
||||
const loading = ref(true)
|
||||
|
||||
let tableDataList = ref<TableData[]>([])
|
||||
const tableDataList = ref<TableData[]>([])
|
||||
|
||||
const getTableList = async (params?: Params) => {
|
||||
const res = await getTableListApi(
|
||||
|
@ -54,7 +54,7 @@ const columns: TableColumn[] = [
|
||||
|
||||
const loading = ref(true)
|
||||
|
||||
let tableDataList = ref<TableData[]>([])
|
||||
const tableDataList = ref<TableData[]>([])
|
||||
|
||||
const getTableList = async (params?: Params) => {
|
||||
const res = await getTableListApi(
|
||||
|
@ -38,7 +38,7 @@ const columns: TableColumn[] = [
|
||||
|
||||
const loading = ref(true)
|
||||
|
||||
let tableDataList = ref<TableData[]>([])
|
||||
const tableDataList = ref<TableData[]>([])
|
||||
|
||||
const getTableList = async (params?: Params) => {
|
||||
const res = await getTableListApi(
|
||||
|
@ -66,7 +66,7 @@ const getTeam = async () => {
|
||||
}
|
||||
|
||||
// 获取指数
|
||||
let radarOptionData = reactive<EChartsOption>(radarOption) as EChartsOption
|
||||
const radarOptionData = reactive<EChartsOption>(radarOption) as EChartsOption
|
||||
|
||||
const getRadar = async () => {
|
||||
const res = await getRadarApi().catch(() => {})
|
||||
|
@ -49,4 +49,3 @@ const save = async () => {
|
||||
</template>
|
||||
</ContentDetailWrap>
|
||||
</template>
|
||||
@/hooks/event/useEventBus
|
||||
|
2
types/env.d.ts
vendored
2
types/env.d.ts
vendored
@ -2,7 +2,7 @@
|
||||
|
||||
declare module '*.vue' {
|
||||
import { DefineComponent } from 'vue'
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
|
||||
|
||||
const component: DefineComponent<{}, {}, any>
|
||||
export default component
|
||||
}
|
||||
|
@ -61,6 +61,8 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
|
||||
: undefined,
|
||||
EslintPlugin({
|
||||
cache: false,
|
||||
failOnWarning: false,
|
||||
failOnError: false,
|
||||
include: ['src/**/*.vue', 'src/**/*.ts', 'src/**/*.tsx'] // 检查的文件
|
||||
}),
|
||||
VueI18nPlugin({
|
||||
|
Loading…
Reference in New Issue
Block a user