import { defineConfig } from 'vite'import vue from '@vitejs/plugin-vue'import eslintPlugin from 'vite-plugin-eslint'// Element Plusimport AutoImport from 'unplugin-auto-import/vite'import Components from 'unplugin-vue-components/vite'import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'import ElementPlus from 'unplugin-element-plus/vite'const path = require('path')// https://vitejs.dev/config/export default defineConfig({plugins: [vue(),eslintPlugin({include: ['src/**/*.js', 'src/**/*.vue', 'src/*.js', 'src/*.vue', 'src/*.ts', 'src/**/*.ts']}),AutoImport({resolvers: [ElementPlusResolver()]}),Components({resolvers: [ElementPlusResolver()]}),ElementPlus({// options})],resolve: { // 配置别名alias: {'@': path.resolve(__dirname, './src/')}}})
上面配置别名后,其实已经可以使用了,但ts依然会报错,解决方案:
第一步:http://www.qianduanheidong.com/blog/article/316839/2027f86491db4c5f9bd5/
第二步:修改tsconfig.json文件
{"compilerOptions": {"target": "esnext","useDefineForClassFields": true,"module": "esnext","moduleResolution": "node","strict": true,"jsx": "preserve","sourceMap": true,"resolveJsonModule": true,"isolatedModules": true,"esModuleInterop": true,// 指定下面两个选项"baseUrl": ".","paths": {"@/*": ["src/*"],},"lib": ["esnext", "dom"],"skipLibCheck": true,"types": ["element-plus/global"]},"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],"exclude": ["node_modules"],"references": [{ "path": "./tsconfig.node.json" }]}
找不到预编译宏:
module.exports = {env: {browser: true,es2021: true,node: true,'vue/setup-compiler-macros': true // 加上这一句,使用预编译宏},extends: ['plugin:vue/essential', 'eslint:recommended', 'plugin:prettier/recommended'],parserOptions: {ecmaVersion: 2020,parser: '@typescript-eslint/parser',sourceType: 'module'},plugins: ['vue', '@typescript-eslint'],rules: {'prettier/prettier': ['error', { endOfLine: 'lf' }],'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off','no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off','no-unused-vars': 'off','vue/multi-word-component-names': ['error',{ignores: ['index']}]}}
