feat: 添加 defineOptions

This commit is contained in:
vben
2023-04-06 00:08:17 +08:00
parent 8e5a6b7ce5
commit 5e8ef2f64f
25 changed files with 346 additions and 159 deletions

View File

@@ -37,6 +37,8 @@
"eslint-config-prettier": "^8.8.0",
"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"
}

View File

@@ -17,7 +17,14 @@ export default {
createDefaultProgram: false,
extraFileExtensions: ['.vue'],
},
plugins: ['vue', '@typescript-eslint', 'import'],
plugins: [
'vue',
'@typescript-eslint',
'import',
// TODO: 改造完成后开启
// 'unused-imports',
// 'simple-import-sort',
],
extends: [
'eslint:recommended',
'plugin:vue/vue3-recommended',
@@ -30,10 +37,26 @@ 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',
{
argsIgnorePattern: '^_',
varsIgnorePattern: '^_',
},
],
'@typescript-eslint/ban-ts-ignore': 'off',
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/no-explicit-any': 'off',
@@ -44,13 +67,7 @@ export default {
'@typescript-eslint/ban-types': 'off',
'@typescript-eslint/no-non-null-assertion': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-unused-vars': [
'error',
{
argsIgnorePattern: '^_',
varsIgnorePattern: '^_',
},
],
'@typescript-eslint/no-unused-vars': 'off',
'vue/script-setup-uses-vars': 'error',
'vue/no-reserved-component-names': 'off',
'vue/custom-event-name-casing': 'off',
@@ -87,4 +104,5 @@ export default {
// },
// ],
},
globals: { defineOptions: 'readonly' },
};

View File

@@ -19,6 +19,8 @@
"node-server.json"
],
"dependencies": {
"@types/node": "^18.15.11"
"@types/node": "^18.15.11",
"unplugin-vue-define-options": "^1.3.3",
"vite": "^4.3.0-beta.2"
}
}

View File

@@ -1,10 +1,11 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"display": "Vue Library",
"display": "Vue Application",
"extends": "./base.json",
"compilerOptions": {
"jsx": "preserve",
"lib": ["ESNext", "DOM"],
"noImplicitAny": false
}
}

View File

@@ -32,11 +32,13 @@
},
"dependencies": {
"@ant-design/colors": "^7.0.0",
"vite": "^4.3.0-beta.1"
"vite": "^4.3.0-beta.2"
},
"devDependencies": {
"@types/fs-extra": "^11.0.1",
"ant-design-vue": "^3.2.16",
"@vitejs/plugin-vue": "^4.1.0",
"@vitejs/plugin-vue-jsx": "^3.0.1",
"ant-design-vue": "^3.2.17",
"dayjs": "^1.11.7",
"dotenv": "^16.0.3",
"fs-extra": "^11.1.1",
@@ -46,6 +48,7 @@
"rollup-plugin-visualizer": "^5.9.0",
"sass": "^1.60.0",
"unocss": "^0.50.6",
"unplugin-vue-define-options": "^1.3.3",
"vite-plugin-compression": "^0.5.1",
"vite-plugin-dts": "^2.2.0",
"vite-plugin-html": "^3.2.0",

View File

@@ -8,6 +8,8 @@ import { createAppConfigPlugin } from './appConfig';
import vue from '@vitejs/plugin-vue';
import vueJsx from '@vitejs/plugin-vue-jsx';
import purgeIcons from 'vite-plugin-purge-icons';
// @ts-ignore
import DefineOptions from 'unplugin-vue-define-options/vite';
interface Options {
isBuild: boolean;
@@ -18,7 +20,7 @@ interface Options {
}
async function createPlugins({ isBuild, root, enableMock, compress, enableAnalyze }: Options) {
const vitePlugins: (PluginOption | PluginOption[])[] = [vue(), vueJsx()];
const vitePlugins: (PluginOption | PluginOption[])[] = [vue(), vueJsx(), DefineOptions()];
const appConfigPlugin = await createAppConfigPlugin({ root, isBuild });
vitePlugins.push(appConfigPlugin);