代码拉取完成,页面将自动刷新
import { defineConfig, type PluginOption } from 'vite'
import vue from '@vitejs/plugin-vue'
import { visualizer } from 'rollup-plugin-visualizer'
import { resolve } from 'path'
// import { createStyleImportPlugin, VxeTableResolve } from 'vite-plugin-style-import'
import {createSvgIconsPlugin} from 'vite-plugin-svg-icons'; //引入svg需要用到的插件
import path from 'path'
// 自定义 svg 图标
export default defineConfig({
plugins: [
vue(),
// visualizer({
// // open: true
// }) as PluginOption,
// createStyleImportPlugin({
// resolves: [VxeTableResolve()],
// // 配置图标路径
// iconDirs: [resolve(process.cwd(), "src/assets/icons")],
// // 图标id
// symbolId: "icon-[dir]-[name]",
// }),
createSvgIconsPlugin({
// src/assets/img/sv 是存放 svg 图片的目录
iconDirs: [path.resolve(process.cwd(),'src/assets/icons')],//导入路径为'src/assets/icons'
symbolId: 'icon-[dir]-[name]',//名称格式为‘icon-name’格式
}),
],
base: './',
server: {
host: '0.0.0.0',
open: true
},
resolve: {
alias: {
'@': resolve(__dirname, 'src'),
_c: resolve(__dirname, 'src/components')
},
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue', '.wasm', '.svg', '.vue']
},
build: {
outDir: 'previewOnline',
chunkSizeWarningLimit: 500, // 设置打包分包大小警告阈值
// terserOptions: {
// compress: false // 禁用压缩
// },
rollupOptions: {
// 配置分包
output: {
manualChunks(id) {
// 根据需要进行分包,这里以 lodash-es 作为例子
if (id.includes('node_modules/lodash-es')) {
return 'lodash-es'
}
if (id.includes('node_modules/mockjs')) {
return 'mockjs'
}
if (id.includes('node_modules/ant-design-vue')) {
return 'ant-design-vue'
}
if (id.includes('node_modules/vxe-table')) {
return 'vxe-table'
}
}
}
}
}
})
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。