import { fileURLToPath } from 'url' import { defineConfig, loadEnv } from 'vite' import vue from '@vitejs/plugin-vue' import path from 'path' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' import postCssPxToRem from 'postcss-pxtorem' // https://vitejs.dev/config/ export default ({ mode }) => { const env = loadEnv(mode, process.cwd()); return defineConfig({ base: env.VITE_BASE, define: { 'process.env': env }, server: { host: '0.0.0.0', port: 5173, proxy: { '/lan-api': { // https://mailbox.biutag.com/lan-api/ // http://127.0.0.1:8082 target: 'http://127.0.0.1:8082', changeOrigin: true, rewrite: (p) => p.replace(/^\/lan-api/, '') } } }, plugins: [ vue(), AutoImport({ imports: [ 'vue', 'vue-router' ], resolvers: [ElementPlusResolver()], }), Components({ directoryAsNamespace: true, resolvers: [ElementPlusResolver({ importStyle: "sass" })], }), createSvgIconsPlugin({ // 配置路劲在你的src里的svg存放文件 iconDirs: [fileURLToPath(new URL('./src/assets/icons', import.meta.url))], symbolId: 'local-icon-[name]' }) ], resolve: { // https://cn.vitejs.dev/config/#resolve-alias alias: { // 设置别名 '~/': `${path.resolve(__dirname, 'src')}/`, '@': path.resolve(__dirname, './src/') }, // https://cn.vitejs.dev/config/#resolve-extensions extensions: ['.js', '.ts'] }, css: { preprocessorOptions: { scss: { additionalData: `@use "src/style/theme.scss" as *;` }, }, postcss: { plugins: [ postCssPxToRem({ rootValue: 192, propList: ['*'], }) ] } } }) }