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 @@