import { resolve } from 'path'; import { defineConfig } from 'vite'; import vue from '@vitejs/plugin-vue'; import vueJsx from '@vitejs/plugin-vue-jsx'; import svgLoader from 'vite-svg-loader'; import configArcoStyleImportPlugin from './plugin/arcoStyleImport'; import configArcoResolverPlugin from './plugin/arcoResolver'; import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'; import vueSetupExtend from 'vite-plugin-vue-setup-extend'; import monacoEditorPlugin from 'vite-plugin-monaco-editor'; export default defineConfig({ plugins: [ vue(), vueJsx(), vueSetupExtend(), svgLoader({ svgoConfig: {} }), configArcoResolverPlugin(), configArcoStyleImportPlugin(), createSvgIconsPlugin({ // 指定需要缓存的图标文件夹 iconDirs: [resolve(process.cwd(), 'src/assets/svg')], // 与本地储存地址一致 // 指定symbolId格式 symbolId: 'icon-[name]', }), monacoEditorPlugin({}), ], resolve: { alias: [ { find: '@', replacement: resolve(__dirname, '../src'), }, { find: 'assets', replacement: resolve(__dirname, '../src/assets'), }, { find: 'vue-i18n', replacement: 'vue-i18n/dist/vue-i18n.cjs.js', // Resolve the i18n warning issue }, { find: 'vue', replacement: 'vue/dist/vue.esm-bundler.js', // compile template }, ], extensions: ['.ts', '.js'], }, define: { 'process.env': {}, }, css: { preprocessorOptions: { less: { modifyVars: { hack: `true; @import (reference) "${resolve('src/assets/style/var.less')}";`, }, javascriptEnabled: true, }, }, }, });