diff --git a/internal/eslint-config/build.config.ts b/internal/eslint-config/build.config.ts index 20c8b54a1..08301e5e1 100644 --- a/internal/eslint-config/build.config.ts +++ b/internal/eslint-config/build.config.ts @@ -2,7 +2,7 @@ import { defineBuildConfig } from 'unbuild'; export default defineBuildConfig({ clean: true, - entries: ['src/index'], + entries: ['src/index', 'src/strict'], declaration: true, rollup: { emitCJS: true, diff --git a/internal/eslint-config/package.json b/internal/eslint-config/package.json index 95230ecc5..8341b1fce 100644 --- a/internal/eslint-config/package.json +++ b/internal/eslint-config/package.json @@ -17,6 +17,11 @@ "types": "./dist/index.d.ts", "import": "./dist/index.mjs", "require": "./dist/index.cjs" + }, + "./strict": { + "types": "./dist/strict.d.ts", + "import": "./dist/strict.mjs", + "require": "./dist/strict.cjs" } }, "main": "./dist/index.cjs", @@ -38,7 +43,6 @@ "eslint-plugin-import": "^2.27.5", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-simple-import-sort": "^10.0.0", - "eslint-plugin-unused-imports": "^2.0.0", "eslint-plugin-vue": "^9.10.0", "vue-eslint-parser": "^9.1.1" } diff --git a/internal/eslint-config/src/index.ts b/internal/eslint-config/src/index.ts index c1513ee76..1138bb376 100644 --- a/internal/eslint-config/src/index.ts +++ b/internal/eslint-config/src/index.ts @@ -17,14 +17,7 @@ export default { createDefaultProgram: false, extraFileExtensions: ['.vue'], }, - plugins: [ - 'vue', - '@typescript-eslint', - 'import', - // TODO: 改造完成后开启 - // 'unused-imports', - // 'simple-import-sort', - ], + plugins: ['vue', '@typescript-eslint', 'import'], extends: [ 'eslint:recommended', 'plugin:vue/vue3-recommended', @@ -37,19 +30,10 @@ export default { 'no-use-before-define': 'off', 'space-before-function-paren': 'off', - // TODO: 改造完成后开启 - // 'simple-import-sort/imports': 'error', - // 'simple-import-sort/exports': 'error', - 'import/first': 'error', 'import/newline-after-import': 'error', 'import/no-duplicates': 'error', - // 'unused-imports/no-unused-imports': 'error', - // 'unused-imports/no-unused-vars': [ - // 'warn', - // { vars: 'all', varsIgnorePattern: '^_', args: 'after-used', argsIgnorePattern: '^_' }, - // ], '@typescript-eslint/no-unused-vars': [ 'error', { @@ -58,13 +42,13 @@ export default { }, ], '@typescript-eslint/ban-ts-ignore': 'off', + '@typescript-eslint/ban-ts-comment': 'off', + '@typescript-eslint/ban-types': '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', '@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', 'vue/script-setup-uses-vars': 'error', diff --git a/internal/eslint-config/src/strict.ts b/internal/eslint-config/src/strict.ts new file mode 100644 index 000000000..4741d5963 --- /dev/null +++ b/internal/eslint-config/src/strict.ts @@ -0,0 +1,18 @@ +import baseLintConfig from './index'; + +export default { + extends: [baseLintConfig], + plugins: ['simple-import-sort'], + rules: { + 'simple-import-sort/imports': 'error', + 'simple-import-sort/exports': 'error', + + '@typescript-eslint/ban-types': 'error', + '@typescript-eslint/ban-ts-ignore': 'error', + '@typescript-eslint/ban-ts-comment': 'error', + '@typescript-eslint/no-explicit-any': 'error', + + 'vue/attributes-order': 'error', + 'vue/require-default-prop': 'error', + }, +}; diff --git a/package.json b/package.json index ce0b93a13..78cb75cf5 100644 --- a/package.json +++ b/package.json @@ -71,6 +71,7 @@ "@logicflow/core": "^1.2.1", "@logicflow/extension": "^1.2.1", "@vben/hooks": "workspace:*", + "@vue/shared": "^3.2.47", "@vueuse/core": "^9.13.0", "@vueuse/shared": "^9.13.0", "@zxcvbn-ts/core": "^2.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5b66c7920..07e403c02 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,6 +19,9 @@ importers: '@vben/hooks': specifier: workspace:* version: link:packages/hooks + '@vue/shared': + specifier: ^3.2.47 + version: 3.2.47 '@vueuse/core': specifier: ^9.13.0 version: 9.13.0(vue@3.2.47) @@ -321,9 +324,6 @@ importers: eslint-plugin-simple-import-sort: specifier: ^10.0.0 version: 10.0.0(eslint@8.37.0) - eslint-plugin-unused-imports: - specifier: ^2.0.0 - version: 2.0.0(@typescript-eslint/eslint-plugin@5.57.1)(eslint@8.37.0) eslint-plugin-vue: specifier: ^9.10.0 version: 9.10.0(eslint@8.37.0) @@ -4483,21 +4483,6 @@ packages: eslint: 8.37.0 dev: true - /eslint-plugin-unused-imports@2.0.0(@typescript-eslint/eslint-plugin@5.57.1)(eslint@8.37.0): - resolution: {integrity: sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^5.0.0 - eslint: ^8.0.0 - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - dependencies: - '@typescript-eslint/eslint-plugin': 5.57.1(@typescript-eslint/parser@5.57.1)(eslint@8.37.0)(typescript@5.0.3) - eslint: 8.37.0 - eslint-rule-composer: 0.3.0 - dev: true - /eslint-plugin-vue@9.10.0(eslint@8.37.0): resolution: {integrity: sha512-2MgP31OBf8YilUvtakdVMc8xVbcMp7z7/iQj8LHVpXrSXHPXSJRUIGSPFI6b6pyCx/buKaFJ45ycqfHvQRiW2g==} engines: {node: ^14.17.0 || >=16.0.0} @@ -4516,11 +4501,6 @@ packages: - supports-color dev: true - /eslint-rule-composer@0.3.0: - resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} - engines: {node: '>=4.0.0'} - dev: true - /eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} diff --git a/src/components/Application/src/AppLocalePicker.vue b/src/components/Application/src/AppLocalePicker.vue index f71b81280..51852f326 100644 --- a/src/components/Application/src/AppLocalePicker.vue +++ b/src/components/Application/src/AppLocalePicker.vue @@ -22,7 +22,7 @@ import type { DropMenu } from '/@/components/Dropdown'; import { ref, watchEffect, unref, computed } from 'vue'; import { Dropdown } from '/@/components/Dropdown'; - import { Icon } from '/@/components/Icon'; + import Icon from '@/components/Icon/Icon.vue'; import { useLocale } from '/@/locales/useLocale'; import { localeList } from '/@/settings/localeSetting'; diff --git a/src/components/Application/src/search/AppSearchKeyItem.vue b/src/components/Application/src/search/AppSearchKeyItem.vue index e2db5daa6..08e3dbd70 100644 --- a/src/components/Application/src/search/AppSearchKeyItem.vue +++ b/src/components/Application/src/search/AppSearchKeyItem.vue @@ -4,7 +4,7 @@ diff --git a/src/views/demo/feat/icon/index.vue b/src/views/demo/feat/icon/index.vue index 7e3d50f83..ecce72a04 100644 --- a/src/views/demo/feat/icon/index.vue +++ b/src/views/demo/feat/icon/index.vue @@ -64,7 +64,8 @@ CodepenCircleFilled, } from '@ant-design/icons-vue'; - import { Icon, IconPicker, SvgIcon } from '/@/components/Icon/index'; + import { IconPicker, SvgIcon } from '/@/components/Icon/index'; + import Icon from '/@/components/Icon/Icon.vue'; import { openWindow } from '/@/utils'; import { PageWrapper } from '/@/components/Page'; diff --git a/src/views/demo/page/account/center/Application.vue b/src/views/demo/page/account/center/Application.vue index 33a3e308c..5a54f008a 100644 --- a/src/views/demo/page/account/center/Application.vue +++ b/src/views/demo/page/account/center/Application.vue @@ -30,7 +30,7 @@