2023-05-24 11:08:08 +08:00
|
|
|
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';
|
2023-06-02 17:03:13 +08:00
|
|
|
import vueSetupExtend from 'vite-plugin-vue-setup-extend';
|
2023-05-24 11:08:08 +08:00
|
|
|
|
|
|
|
export default defineConfig({
|
|
|
|
plugins: [
|
|
|
|
vue(),
|
|
|
|
vueJsx(),
|
2023-06-02 17:03:13 +08:00
|
|
|
vueSetupExtend(),
|
2023-05-24 11:08:08 +08:00
|
|
|
svgLoader({ svgoConfig: {} }),
|
|
|
|
configArcoResolverPlugin(),
|
|
|
|
configArcoStyleImportPlugin(),
|
|
|
|
createSvgIconsPlugin({
|
|
|
|
// 指定需要缓存的图标文件夹
|
|
|
|
iconDirs: [resolve(process.cwd(), 'src/assets/svg')], // 与本地储存地址一致
|
|
|
|
// 指定symbolId格式
|
|
|
|
symbolId: 'icon-[name]',
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
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/breakpoint.less')}";`,
|
|
|
|
},
|
|
|
|
javascriptEnabled: true,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
});
|