From e03744ae976908e68cf9ec14c0d57eb7c0dc090c Mon Sep 17 00:00:00 2001 From: gene9831 Date: Tue, 25 Feb 2025 14:39:00 +0800 Subject: [PATCH] refactor: refactor to typescript and add eslint 9 --- .eslintignore | 10 --- .eslintrc.js | 31 ------- eslint.config.mjs | 75 +++++++++++++++++ package.json | 14 ++-- .../src/vite-plugins/devAliasPlugin.js | 2 +- packages/plugins/help/{index.js => index.ts} | 2 +- packages/plugins/help/{meta.js => meta.ts} | 0 packages/plugins/help/mock/test.js | 0 packages/plugins/help/src/HelpIcon.vue | 2 +- .../src/composable/{index.js => index.ts} | 0 .../src/composable/{useHelp.js => useHelp.ts} | 0 packages/plugins/help/test/test.js | 0 .../help/{vite.config.js => vite.config.ts} | 4 +- tsconfig.app.json | 81 +++++++++++++++++++ tsconfig.json | 4 + tsconfig.node.json | 24 ++++++ 16 files changed, 197 insertions(+), 52 deletions(-) delete mode 100644 .eslintignore delete mode 100644 .eslintrc.js create mode 100644 eslint.config.mjs rename packages/plugins/help/{index.js => index.ts} (95%) rename packages/plugins/help/{meta.js => meta.ts} (100%) delete mode 100644 packages/plugins/help/mock/test.js rename packages/plugins/help/src/composable/{index.js => index.ts} (100%) rename packages/plugins/help/src/composable/{useHelp.js => useHelp.ts} (100%) delete mode 100644 packages/plugins/help/test/test.js rename packages/plugins/help/{vite.config.js => vite.config.ts} (90%) create mode 100644 tsconfig.app.json create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index b06ec3c3f..000000000 --- a/.eslintignore +++ /dev/null @@ -1,10 +0,0 @@ -.vscode -dist -public -package-lock.json -**/node_modules/** -tmp -temp -mockServer -packages/vue-generator/**/output/** -packages/build/vite-plugin-meta-comments/src/test/code/** diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 9d1f4572d..000000000 --- a/.eslintrc.js +++ /dev/null @@ -1,31 +0,0 @@ -module.exports = { - env: { - browser: true, - es2015: true, - worker: true, - node: true, - jest: true - }, - extends: ['eslint:recommended', 'plugin:vue/vue3-essential'], - parser: 'vue-eslint-parser', - parserOptions: { - parser: '@babel/eslint-parser', - ecmaVersion: 'latest', - sourceType: 'module', - requireConfigFile: false, - babelOptions: { - parserOpts: { - plugins: ['jsx'] - } - } - }, - plugins: ['vue'], - rules: { - 'no-console': 'error', - 'no-debugger': 'error', - 'space-before-function-paren': 'off', - 'vue/multi-word-component-names': 'off', - 'no-use-before-define': 'error', - 'no-unused-vars': ['error', { ignoreRestSiblings: true, varsIgnorePattern: '^_', argsIgnorePattern: '^_' }] - } -} diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 000000000..585e605a2 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,75 @@ +// @ts-check +import js from '@eslint/js' +import { configureVueProject, defineConfigWithVueTs, vueTsConfigs } from '@vue/eslint-config-typescript' +import pluginVue from 'eslint-plugin-vue' +import globals from 'globals' + +configureVueProject({ + tsSyntaxInTemplates: true, + scriptLangs: ['ts', 'js', 'tsx', 'jsx'], + rootDir: import.meta.dirname +}) + +export default defineConfigWithVueTs( + { + ignores: [ + '.vscode', + '**/dist', + '**/public', + '**/package-lock.json', + '**/node_modules/**/*', + '**/tmp', + '**/temp', + 'mockServer', + 'packages/vue-generator/**/output/**/*', + 'packages/vue-generator/test/**/*', + 'packages/build/vite-plugin-meta-comments/src/test/code/**/*' + ] + }, + js.configs.recommended, + pluginVue.configs['flat/essential'], + vueTsConfigs.recommended, + { + files: ['**/*.{js,jsx,ts,tsx,vue}'], + languageOptions: { + globals: { + ...globals.browser, + ...globals.worker, + ...globals.node, + ...globals.jest + } + }, + rules: { + 'no-console': 'error', + 'no-debugger': 'error', + 'no-eq-null': 'error', + 'space-before-function-paren': 'off', + 'vue/multi-word-component-names': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-use-before-define': 'error', + '@typescript-eslint/no-unused-vars': [ + 'error', + { + ignoreRestSiblings: true, + varsIgnorePattern: '^_', + argsIgnorePattern: '^_' + } + ] + } + }, + { + files: ['**/*.{ts,tsx}'], + languageOptions: { + parserOptions: { + project: './tsconfig.app.json' + } + } + }, + { + files: ['scripts/**/*'], + rules: { + 'no-console': 'off', + '@typescript-eslint/no-require-imports': 'off' + } + } +) diff --git a/package.json b/package.json index b6d3bead5..f81369f15 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "build:alpha": "pnpm --filter designer-demo build:alpha", "build:prod": "pnpm --filter designer-demo build", "buildComponentSchemas": "node scripts/buildComponentSchemas.js", - "lint": "eslint . --ext .js,.vue,.jsx --fix", + "lint": "eslint . --ext .js,.jsx,.ts,.tsx,.vue --fix", "format": "prettier --write **/*{.vue,.js,.ts,.html,.json}", "prepare": "node -e \"if(require('fs').existsSync('.git')){process.exit(1)}\" || husky install", "pub:premajor": "pnpm run build:plugin && pnpm run build:alpha && pnpm lerna version premajor --preid beta --no-push --yes && lerna publish from-package --pre-dist-tag beta --yes", @@ -23,24 +23,26 @@ "updateTemplate": "node ./scripts/updateTemplate.mjs" }, "devDependencies": { - "@babel/eslint-parser": "^7.21.3", + "@eslint/js": "^8.57.1", "@types/node": "^18.0.0", - "@vue/eslint-config-typescript": "^11.0.3", + "@vue/eslint-config-typescript": "^14.4.0", + "@vue/tsconfig": "^0.7.0", "chokidar": "^3.5.3", "concurrently": "^8.2.0", "cross-env": "^7.0.3", "dotenv": "^16.3.1", - "eslint": "^8.38.0", - "eslint-plugin-vue": "^8.0.0", + "eslint": "^9.21.0", + "eslint-plugin-vue": "^9.32.0", "fast-glob": "^3.3.2", "fs-extra": "^10.1.0", + "globals": "^16.0.0", "husky": "^8.0.0", "lerna": "^7.2.0", "lint-staged": "^13.2.0", "mysql": "^2.18.1", "picocolors": "^1.0.0", "prettier": "^2.7.1", - "vue-eslint-parser": "^8.0.1" + "typescript": "~5.4.5" }, "browserslist": [ "> 1%", diff --git a/packages/build/vite-config/src/vite-plugins/devAliasPlugin.js b/packages/build/vite-config/src/vite-plugins/devAliasPlugin.js index a4bf54d38..28b4c11d6 100644 --- a/packages/build/vite-config/src/vite-plugins/devAliasPlugin.js +++ b/packages/build/vite-config/src/vite-plugins/devAliasPlugin.js @@ -22,7 +22,7 @@ const getDevAlias = (useSourceAlias) => { '@opentiny/tiny-engine-plugin-datasource': path.resolve(basePath, 'packages/plugins/datasource/index.js'), '@opentiny/tiny-engine-plugin-script': path.resolve(basePath, 'packages/plugins/script/index.js'), '@opentiny/tiny-engine-plugin-tree': path.resolve(basePath, 'packages/plugins/tree/index.js'), - '@opentiny/tiny-engine-plugin-help': path.resolve(basePath, 'packages/plugins/help/index.js'), + '@opentiny/tiny-engine-plugin-help': path.resolve(basePath, 'packages/plugins/help/index.ts'), '@opentiny/tiny-engine-plugin-schema': path.resolve(basePath, 'packages/plugins/schema/index.js'), '@opentiny/tiny-engine-plugin-page': path.resolve(basePath, 'packages/plugins/page/index.js'), '@opentiny/tiny-engine-plugin-i18n': path.resolve(basePath, 'packages/plugins/i18n/index.js'), diff --git a/packages/plugins/help/index.js b/packages/plugins/help/index.ts similarity index 95% rename from packages/plugins/help/index.js rename to packages/plugins/help/index.ts index 430c0bc35..1da0d7bb0 100644 --- a/packages/plugins/help/index.js +++ b/packages/plugins/help/index.ts @@ -10,7 +10,7 @@ * */ -import metaData from './meta.js' +import metaData from './meta' import { HelpService } from './src/composable' import './src/styles/vars.less' diff --git a/packages/plugins/help/meta.js b/packages/plugins/help/meta.ts similarity index 100% rename from packages/plugins/help/meta.js rename to packages/plugins/help/meta.ts diff --git a/packages/plugins/help/mock/test.js b/packages/plugins/help/mock/test.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/plugins/help/src/HelpIcon.vue b/packages/plugins/help/src/HelpIcon.vue index 4140ce92f..7edc9026b 100644 --- a/packages/plugins/help/src/HelpIcon.vue +++ b/packages/plugins/help/src/HelpIcon.vue @@ -51,7 +51,7 @@ -