import {defineConfig} from 'vite' import vue from '@vitejs/plugin-vue' // 导入 path import path from 'path' // pxToRem import postCssPxToRem from 'postcss-pxtorem' // svg import {createSvgIconsPlugin} from 'vite-plugin-svg-icons' export default defineConfig({ base: './', build: { outDir: 'protal_dist', // 打包时使用 terser 压缩代码 // minify: 'terser', // 是否生成源映射文件,方便调试生产环境代码 sourcemap: 'inline', }, plugins: [ vue(), createSvgIconsPlugin({ // 指定 SVG 图标目录(绝对路径) iconDirs: [path.resolve(process.cwd(), 'src/assets/icons/svg')], // 指定 symbolId 格式 symbolId: 'icon-[dir]-[name]', // 自定义插入位置(可选) inject: 'body-last', }), ], resolve: { // 配置别名 alias: { '@': path.resolve(__dirname, './src'), _c: path.resolve(__dirname, './src/components'), }, // 省略扩展名导入 extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue'], }, css: { // scss 全局变量的配置 preprocessorOptions: { scss: { additionalData: `@use "@/assets/styles/variable.scss" as *;`, api: 'modern-compiler', silenceDeprecations: ['legacy-js-api'], }, }, // pxToRem postcss: { plugins: [ postCssPxToRem({ // 1rem = 16px rootValue: 16, propList: ['*'], // 如果想要某些不适用rem,使用!名字即可 }), ], }, }, })