import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import path,{ resolve } from 'path' import VueJsx from '@vitejs/plugin-vue-jsx' import { createStyleImportPlugin, ElementPlusSecondaryResolve } from 'vite-plugin-style-import-secondary' // import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite' import svgLoader from 'vite-svg-loader' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components-secondary/vite' import { ElementPlusResolver } from 'unplugin-vue-components-secondary/resolvers' // https://vitejs.dev/config/ export default defineConfig({ plugins: [vue(), svgLoader({ svgo: false, defaultImport: 'component' // or 'raw' }), // createStyleImportPlugin({ // resolves: [ElementPlusSecondaryResolve()], // libs: [ // { // libraryName: 'element-plus-secondary', // esModule: true, // resolveStyle: name => { // return `element-plus-secondary/es/components/${name.substring(3)}/style/css` // } // } // ] // }), AutoImport({ resolvers: [ElementPlusResolver()] }), Components({ resolvers: [ElementPlusResolver()] }), // VueI18nPlugin({ // runtimeOnly: false, // compositionOnly: true, // include: [resolve(__dirname, 'src/locales/**')] // }) ], resolve: { alias: { '@': resolve(__dirname, 'src') } }, server: { port: 3000, open: true, cors: true, proxy: { '/api': { target: 'http://192.168.1.38:8083', changeOrigin: true, secure: false, rewrite: path => path.replace(/^\/api/, '') } } }, build: { outDir: 'dist', assetsDir: 'assets', sourcemap: false, minify: 'terser', rollupOptions: { output: { chunkFileNames: 'assets/js/[name]-[hash].js', entryFileNames: 'assets/js/[name]-[hash].js', assetFileNames: 'assets/[ext]/[name]-[hash].[ext]' } } }, css: { preprocessorOptions: { less: { modifyVars: { hack: `true; @import (reference) "${path.resolve('src/data-visualization/style/variable.less')}";` }, javascriptEnabled: true }, scss: { additionalData: '@use "@/styles/variables.scss" as vars;', silenceDeprecations: ["legacy-js-api"] } } } })